【发布时间】:2016-07-16 09:29:31
【问题描述】:
据我所知,当我编写cin >> a 命令时,程序会等待用户输入一些字符,直到遇到换行符\n。该字符将被放入stdin。之后,cin 将把第一个字符放入a 变量中。
我编写了这个程序来将 2 个字符放入 stdin 并使用 2 个 cin 命令让它们显示:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char input;
char input_next;
cout << "Please enter a character from your keyboard: ";
cin >> input;
cout << input << endl;
cin >> input_next;
cout << input_next << endl;
return 0;
}
案例1:我输入字符串“KH”并按下回车键。它显示了 K 和 H。
Please enter a character from your keyboard: KH
K
H
Press <RETURN> to close this window...
案例2:我输入字符“K”并按下回车键。它显示 K 并等待我输入更多字符。它不显示换行符(输入按钮)。为什么?
【问题讨论】:
-
if (cin.eof())并没有按照你的想法去做。 -
cin.eof()告诉您前一个输入是否已到达文件末尾,它不会尝试预测下一个输入的结果。 -
我建议你删除以
if (cin.eof())开头的四行。它们与您的实际问题无关,并且会使其他人误解您的问题。 -
@Revolver_Ocelot:谢谢,我只是用它来检查标准输入。它与我的问题无关。我会删除它。