[英]How do I stop reading from stdin console in C
我是C编程的新手。 在我尝试编码时,我遇到了这个问题。 对不起,如果解决方案很明显,我在这里发布。
#include <stdio.h>
int main(){
int T = 2;
while(T--){
c = getc(stdin);
while( (c != '\n') && (c != EOF)){
// do some work
c = getc(stdin);
}
}
return 0;
}
我想要的是,如果我在多行中有多个字符串输入,例如,
嗨,您好
你好吗
我很好
然后,如果在读取字符“ hith ”之后,while循环被破坏,则fgetc(stdin)要读取的下一个字符应该来自第二行( howareyou )而不是来自“ Hithere ”的字符。
实际上,我将在3个不同的行中给出3个输入字符串。 而且我必须单独检查字符串以获得某些特殊字符。 如果找到该字符,那么我将打印它被找到并立即停止检查该字符串中的任何其他字符。 同样,检查下一个字符串,然后检查下一个字符串,依此类推。
许多人提前感谢。 请帮我。
此行中的逻辑不正确。
while( (c != '\n')|| (c != EOF)){
将其更改为:
while( (c != '\n') && (c != EOF)){
对于你的第二个问题(将来,请每个问题只发一个问题!)你可能想用fgets
读取一行,然后从读取行中获取字符。
这实际上取决于您运行此程序的操作系统。 例如,在Windows中,一行以\\r\\n
结尾,而在Unix上,它以\\n
结束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.