C ++ - 退出程序

时间:2011-01-20 12:15:09

标签: c++ cin

在第(8)章的无恐惧的C ++:让你感觉聪明的初学者指南一书中,尝试显示文本文件的部分代码如下:

while(1)
{
    for(int i=1; i <= 24 && !file_in.eof(); i++)
    {
        file_in.getline(input_line,80);
        std::cout<<input_line<<std::endl;
    }

    if(file_in.eof())
    {
        break;
    }

    std::cout<<"More? (Press 'Q' and ENTER to quit.)";
    std::cin.getline(input_line,80);
    c=input_line[0]; // <<<<<<
    if(c=='Q'||c=='q')
    {
        break;
    }
}

我没有到达的部分是:

c=input_line[0];

我认为它是'Q'或'q'。但是,为什么要使用这种形式(数组)?并且,有没有办法直接读'Q'或'q'?

我尝试了std::cin>>c;,但似乎不正确。

有什么想法吗?

感谢。

4 个答案:

答案 0 :(得分:3)

因为input_line是字符串(来自char s的数组),所以input_line[0]得到第一个字母 - 以防万一,用户写“退出”或“退出”,不只是“Q”

std::cin >> c;是正确的,如果您只输入一个char并按Enter

答案 1 :(得分:3)

  

我尝试了std::cin>>c;,但似乎不正确。

这是正确的,如果cchar

你是对的;读取整行只是为了提取单个字符是奇怪的。我推荐this list的一本书。

答案 2 :(得分:1)

您正在从输入行已写入的“数组”中获取第一个字符。

答案 3 :(得分:-4)

非标准解决方案,但适用于Windows平台。

你可以使用conio.h中定义的getch()函数 例如:

#include <conio.h>
...
char c = getch();

再见