当C ++中没有更多的std输入时,如何让我的程序完成?

时间:2017-02-18 22:29:05

标签: c++

我正在研究算法,我被要求打印" QUIT"当没有更多的程序输入时。

我正在使用

char c;
while(c = getchar()){...} 

因为我需要查找'\n'个字符和数字。

所以我复制了示例输入并将其粘贴到我的程序上进行测试,但是它一直在等待另一个输入,因此当我提交它时,我得到超出时间限制

PS:我不能使用多线程。

3 个答案:

答案 0 :(得分:3)

您可以在getchar()返回EOF时停止,如下所示:

int c;
while ((c = getchar()) != EOF) {...}

请注意,c需要声明为int,而不是char

要使程序更像C ++,请在循环中使用运算符>>而不是getchar,如下所示:

char c;
while (cin >> c) {...} 

答案 1 :(得分:0)

getchar()返回一个int,而不是char。 特别是,它在文件末尾返回EOF,EOF通常为-1。因此,如果将其存储在char中,它将永远不会与EOF相等。

int c;
while ((c = getchar()) != EOF) {

答案 2 :(得分:0)

你是从文件中读书吗?如果是,getchar()将返回EOF:http://www.cplusplus.com/reference/cstdio/getchar/

所以

    int c=getchar();
    while (c != EOF) {...}

应该有用。