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

时间:2013-01-22 02:33:06

标签: c input io stream

我正在尝试将文件重定向为stdin输入(其中一项要求)。我无法弄清楚如何检查下一个输入是否为空或是否已完成。

类似这样的事情

./a.out program < file.txt

所以这就是我想要做的。

char string[10];

while ( the input is NOT empty)
{
    scanf("%s",&string);
    printf("%s",string);
}

给定的文件看起来像这样

abc
abcd
abcde
abcdef

2 个答案:

答案 0 :(得分:2)

如果您执行以下操作,则只有在scanf无法读取任何内容时才会停止。

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

}

顺便扫描字符串,我们无法使用&,因为它已经是指针。

答案 1 :(得分:2)

您可以在stdin上致电feof

while (!feof(stdin)) {
    scanf("%s", string); // You do not need & for strings
    printf("%s",string);
}