И так, после выполнения этого кода, VS возвращает ошибку
Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted.
#include "conio.h"
#include "pch.h"
#include "stdio.h"
#include <locale>
int toint(char num[])
{
int i = 0;
if (num[i]=='+' || num[i]=='-') i++;
int n = 0;
while (i < strlen(num))
{
n*=10;
switch (num[i])
{
case '0': break;
case '1': n+=1; break;
case '2': n+=2; break;
case '3': n+=3; break;
case '4': n+=4; break;
case '5': n+=5; break;
case '6': n+=6; break;
case '7': n+=7; break;
case '8': n+=8; break;
case '9': n+=9; break;
default: break;
}
i++;
}
if (num[0]=='-') n*=-1;
return n;
}
bool isint(char num[])
{
int i = 0;
bool b = true;
if (num[i]=='+' || num[i]=='-') i++;
while (b && i < strlen(num))
{
if (isdigit(num[i])) {}
else {b = false;}
i++;
}
return b;
}
int main()
{
setlocale(LC_ALL, "ru-RU");
char str[8];
bool b = true;
do
{
if (!b) printf("Число указано неверно\n");
scanf_s("%6s",str,strlen(str));
b = isint(str);
}
while (!b);
int year = toint(str);
year -= 1984;
while (year < 0)
year += 60;
int color = year % 5;
int animal = year % 12;
switch (color)
{
case 0: printf("год зелёно"); break;
case 1: printf("год красно"); break;
case 2: printf("год жёлто"); break;
case 3: printf("год бело"); break;
case 4: printf("год чёрно"); break;
default: break;
}
switch (animal)
{
case 0: printf("й крысы"); break;
case 1: printf("й коровы"); break;
case 2: printf("го тигра"); break;
case 3: printf("го кролика"); break;
case 4: printf("го дракона"); break;
case 5: printf("й змеи"); break;
case 6: printf("й лошади"); break;
case 7: printf("й овцы"); break;
case 8: printf("й обезьяны"); break;
case 9: printf("го петуха"); break;
case 10: printf("й собаки"); break;
case 11: printf("й свиньи"); break;
default: break;
}
return 0;
}
Так вот, уважаемые знатоки C++, объясните, пожалуйста, для тупых, в чём тут дело
Исправьте
scanf_s("%6s",str,strlen(str));
на
scanf_s("%6s",str,sizeof(str));
И еще - простите, но зачем нужна функция toint()
при наличии strtol
или хотя бы atoi
?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть такая задача: сгенерировать матрицу NxN случайными числами, найти в каждом столбце полученной матрицы максимум, из выборки максимумов...
Написал муравья ленгтона на c++, для визуализации использовал функции winapiМуравей ходит нормально ровно до того момента когда он должен начать...
Рекомендуемая литература и документация по знаниям и навыкам разработки, не привязанным к конкретным языкам и платформам