3

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

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

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

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;
}

先感谢您!

PS我正在Linux中编程

4

1 回答 1

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; 
}
于 2013-05-11T06:21:12.063 回答