在第(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;
,但似乎不正确。
有什么想法吗?
感谢。
答案 0 :(得分:3)
因为input_line
是字符串(来自char
s的数组),所以input_line[0]
得到第一个字母 - 以防万一,用户写“退出”或“退出”,不只是“Q”
std::cin >> c;
是正确的,如果您只输入一个char
并按Enter
答案 1 :(得分:3)
答案 2 :(得分:1)
您正在从输入行已写入的“数组”中获取第一个字符。
答案 3 :(得分:-4)
非标准解决方案,但适用于Windows平台。
你可以使用conio.h中定义的getch()函数 例如:
#include <conio.h>
...
char c = getch();
再见