Я новичок в C, поэтому извините, если это глупый вопрос, но когда я запускаю следующий код:
#include <stdio.h>
int main () {
int i;
int test[10];
char string[81];
for(i = 0; i < 10; i++){
scanf("%d", &test[i]);
}
for(i=0; i < 7; i++){
gets(string);
printf("String was entered\n");
}
}
И введите любые 10 цифр, будет напечатана строка «строка была введена», даже если я не ввел строку в командном окне. Кто-нибудь может объяснить, почему? Есть ли способ остановить это?
Спасибо!
gets
, в значительной степени автоматически имеет неопределенное поведение... - person R.. GitHub STOP HELPING ICE   schedule 18.09.2010fgets()
иsscanf()
, проблема с пустым вводом вообще не возникла бы.scanf()
практична, но ее трудно эффективно использовать в сочетании с другими функциями ввода. О, и я должен был сказать это раньше: никогда не используйтеgets()
НИКОГДА НИКОГДА! - person pmg   schedule 19.09.2010