gpt4 book ai didi

fscanf() 后的代码不执行

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:38 28 4
gpt4 key购买 nike

我是 C 的新手,这里有这个简单的代码:

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 的读取后,它不会执行任何操作。有什么我不知道的概念吗?提前致谢。

最佳答案

您需要更改它以查找 EOF:

while (EOF != fscanf(input, "%s",string)) {

EOF 字符在 Windows 中为 ^Z 或在 *nix 中为 ^D(即 Ctrl+Z 或 Ctrl+D)。输入 EOF 字符后,您仍然需要按回车键,因为键盘输入将被行缓冲。

关于fscanf() 后的代码不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28128362/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com