C 如何检查下一个输入是否为空?

C 如何检查下一个输入是否为空?,c,input,io,stream,C,Input,Io,Stream,我正试图重定向一个文件作为stdin输入的一个要求。我不知道如何检查下一个输入是否为空或是否已完成 像这样的 ./a.out program < file.txt abc abcd abcde abcdef 给定的文件如下所示 ./a.out program < file.txt abc abcd abcde abcdef 如果执行以下操作,则仅当scanf无法读取任何其他内容时,它才会停止 while( scanf("%s", string) != EOF ){ p

我正试图重定向一个文件作为stdin输入的一个要求。我不知道如何检查下一个输入是否为空或是否已完成

像这样的

./a.out program < file.txt
abc
abcd
abcde
abcdef
给定的文件如下所示

./a.out program < file.txt
abc
abcd
abcde
abcdef

如果执行以下操作,则仅当scanf无法读取任何其他内容时,它才会停止

while( scanf("%s", string) != EOF ){
    printf("%s", string);

}

通过扫描字符串的方式,我们无法使用它,因为它已经是一个指针。

如果执行以下操作,它只会在scanf无法读取任何其他内容时停止

while( scanf("%s", string) != EOF ){
    printf("%s", string);

}
通过扫描字符串的方式,我们无法使用&因为它已经是指针。

您可以调用stdin:

您可以访问stdin:


我也这样编码。scanf的手册页提示:如果在任何转换(如文件结束)之前发生输入失败,则返回值EOF。非常感谢,这就成功了。我无法访问终端上的手册页,因为我的学校在考试时屏蔽了它,但还没有解除屏蔽。我也这样编码。scanf的手册页提示:如果在任何转换(如文件结束)之前发生输入失败,则返回值EOF。非常感谢,这就成功了。我无法访问我的终端上的手册页,因为我的学校为了考试屏蔽了它,但还没有解锁。非常感谢,我尝试了上面的和这个。他们两个都工作。@user1993422不客气!如果你的问题解决了,考虑接受一个解决方案来表明你没有积极寻找一个改进的解决方案,并在堆栈溢出上获得一个新徽章。他们两个都工作。@user1993422不客气!如果您的问题得到解决,请考虑接受其中一个解决方案,以表明您没有积极寻找改进的解决方案,并在堆栈溢出上获得新徽章。