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

时间:2014-05-06 07:08:50

标签: 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;
}

我想要的就是如果我在多行中有多个字符串输入,例如,

  

Hithere

     

howareyou

     

Iamgood

然后,如果在读取字符“ hith ”之后,while循环被破坏,则 fgetc(stdin)要读取的下一个字符应来自第二个字符line( howareyou )不是“ Hithere ”中的字符。

  

实际上,我将在3个不同的行中给出3个输入字符串。和我   必须单独检查字符串以获得某些特殊字符。和   如果找到该角色,那么我将打印它被找到并且   立即停止检查该字符串中的任何其他字符。   同样,检查下一个字符串,然后检查下一个字符串,依此类推。

许多人提前感谢。请帮帮我。

3 个答案:

答案 0 :(得分:2)

此行中的逻辑不正确。

    while( (c != '\n')|| (c != EOF)){

将其更改为:

    while( (c != '\n') && (c != EOF)){

答案 1 :(得分:1)

对于您的第二个问题(将来,请每个问题只发一个问题!)您可能希望使用fgets读取一行,然后从读取行中获取字符。

答案 2 :(得分:1)

这实际上取决于您运行此程序的操作系统。例如,在Windows中,一行以\r\n结尾,而在Unix上,它以\n结尾。