我正在循环迭代。在第一次迭代中,我可以在标准输入上写入并获取我想要的数据。在第二个操作中: name 被跳过,它要求我输入 name2。为什么它会跳过名称?
for (i = 0; TRUE; i++) {
printf("> nom :");
fgets(items[i].name, 15, stdin);
printf("nom: %s\n", items[i].name);
if (items[i].name[0] == '.') break;
printf("> prenom : ");
fgets(items[i].name2, 15, stdin);
printf("name2: %s\n", items[i].name2);
}
最佳答案
即使在循环的第一次迭代中,您提供的代码也不会提示输入名称
。如果您收到任何提示,那么这就是在进入循环之前发生的。相反,所提供的代码确实提示输入 name2
。
循环的每次迭代都从读取下一个名称
(没有提示)并打印它开始。如果您看到不同的行为,那么您正在运行不同的代码。
关于c - 为什么 fgets() 在循环中被跳过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26554496/