Я только начал использовать C, и у меня возникли проблемы с компиляцией. Кажется, что у компилятора постоянно возникают проблемы с char. Обратите внимание, как мне нужно поставить пробел до% c. Теперь, после изучения онлайн-бит, я узнал, что добавление, 1 после & флага в значительной степени решает это, но я скорее разрешаю это полностью, так как он должен работать так. Я использую Visual studio 2013 кстати.Проблемы с char и scanf_s()
#include <stdio.h>
void main()
{
int num;
char flag;
while (1)
{
printf("Please enter your no.:");
scanf_s("%d", &num);
if (num > -1)
{
if (num < 10)
{
printf("Your number is 1 digit.\n");
}
else if (num < 100)
{
printf("Your number is 2 digits.\n");
}
else if (num < 1000)
{
printf("Your number is 3 digits.\n");
}
else if (num > 999)
{
printf("Your number has a lot of digits.\n");
}
}
else
{
printf("Please input a correct value.\n");
}
printf("Would you like to countinue? y/n \n");
scanf_s(" %c", &flag)
// problem
if (flag == 'n')
{
exit(0);
}
}
}
А также удалить пробел в «% c» i.e «% C» для вышеуказанного. – VDN
Спасибо, это решило. Однако мне еще нужно поставить пробел до% c. – omm118
@VDN пространство в строке формата необходимо в этом случае для использования символа новой строки, оставшегося в stdin, при использовании предыдущего scanf_s для чтения num в начале цикла while(). –