我想从标准输入中读取长度未知的字符流。我正在尝试逐个字符地读取
#include <stdio.h>
int main(void)
{
char ch;
do
{
scanf("%c",&ch);
//do some comparison of ch
}while(ch!='');
return 0;
}
帮助我在while中写入条件,这样我就可以正确地读取输入,而不会进入无限循环
样本输入:abcdefghijklmnop
可能最简单的解决方案是这样的
#include <stdio.h>
int main(void)
{
char ch;
do
{
ch = fgetc(stdin);
//do some comparison of ch
}while( ch != EOF );
return 0;
}
话虽如此,问题陈述如下
从标准输入读取长度为的字符流未知的
有点棘手。根据上面的程序,您可以使用ctrl+d, EOF或使用文件重定向
运行二进制文件来停止它。./a.out < input.txt
实际上,标准输入的解释使这个问题更有意义。
转义字符错误。你想把所有东西都写在一行上吗?然后使用'n'结束循环。
while (ch != 'n')
如果一个字符一个字符地写,使用一个字符来退出序列(例如'@')
while (ch != '@')