я очень новичок в C и есть этот простой код здесь:код после fscanf() не выполняет
int main(int argc, char **argv){
FILE *input = stdin;
char string[20];
while (fscanf(input, "%s",string)) {
printf("String: %s \n",string);
}
printf("Done");
return 0;
}
Проблема, которую я имею, что «Сделано» строка никогда не будет напечатана. Когда цикл while завершит чтение из stdin, он ничего не выполнит после него. Есть ли какая-то концепция, о которой я не знаю? Заранее спасибо.
У вас может быть переполнение буфера. Убедитесь, что вы вводите не более 19 символов в приглашение (или расширяете размер строки [20]) – user590028
Этого недостаточно, отправьте части входного файла. –
Строка char [20] не означает, что каждая так называемая строка не выделяет 20 символов? Я ввел только одно слово под 20 символами, а printf после того, как цикл все еще не выполняется. – dhint4