我想从标准输入读取长度未知的字符流。我试图按字符逐字阅读
#include <stdio.h>
int main(void)
{
char ch;
do
{
scanf("%c",&ch);
//do some comparison of ch
}while(ch!='');
return 0;
}
帮助我写入条件,以便我可以正确读取输入而无需进入无限循环
示例输入:
abcdefghijklmnop
答案 0 :(得分:0)
你的逃脱角色是错误的。 你想在一条线上写下所有内容吗?然后使用'\ n'结束你的循环。
while (ch != '\n')
如果逐个字符编写,请使用一个来退出序列(例如'@')
while (ch != '@')
答案 1 :(得分:0)
可能最简单的解决方案是
#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