繁体   English   中英

如何在C中停止从stdin控制台读取

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM