如果没有什么可读的,如何跳过getchar()?

时间:2013-05-11 06:06:41

标签: c getchar

我编写了一个简单的交互式程序,希望得到用户的输入。 在读取特定输入后,它会采取特定操作,但首先通过从流中读取任何剩余字符来检查用户是否输入了太多命令。

我的问题是:如果流中没有遗留的字符,它会被卡住,直到用户按下回车键。有没有办法覆盖这个?

这是检查输入流中剩余字符的函数:

int check_end_of_stream(void){
    char c;
    c=getchar();
    for(; c!='\n' && c!=EOF; c=getchar())
        if(c!=' ' || c!=','){
            printf("You have written too many statements");
            printf(" in your command line!\n");
            return 0;
        }
    return 1;
}

提前谢谢!

P.S。我在Linux编程

1 个答案:

答案 0 :(得分:0)

另一个解决方案是使用 getche()方法,这不会等待输入被按下...

int check_end_of_stream(void){
char c;

for(c=getche(); c!='\n' && c!=EOF; c=getche())
if(c!=' ' || c!=','){
    printf("You have written too many statements");
    printf(" in your command line!\n");
    return 0;
}
return 1; 
}