C++ 为什么while循环使用cin.get()函数会输出两次结果? #包括 使用名称空间std; int main() { INTA; 而((a=cin.get())!=EOF) { cout
您的输入实际上由两个字符组成:字符C++ 为什么while循环使用cin.get()函数会输出两次结果? #包括 使用名称空间std; int main() { INTA; 而((a=cin.get())!=EOF) { cout,c++,while-loop,C++,While Loop,您的输入实际上由两个字符组成:字符1后跟换行符 尝试在只包含一个字节的文件内容中插入管道,或者在不包含换行符的一个字母字符串中插入管道,您将只看到一个“hi”添加一行代码以打印a的值。这将帮助您了解程序看到的输入值: #include <iostream> using namespace std; int main() { int a ; while ( ( a = cin.get() ) != EOF ) { cout <<
1
后跟换行符
尝试在只包含一个字节的文件内容中插入管道,或者在不包含换行符的一个字母字符串中插入管道,您将只看到一个
“hi”
添加一行代码以打印a
的值。这将帮助您了解程序看到的输入值:
#include <iostream>
using namespace std;
int main()
{
int a ;
while ( ( a = cin.get() ) != EOF )
{
cout << "hi" <<endl;
} // end while
}
intmain()
{
INTA;
而((a=cin.get())!=EOF)
{
cout Try:echo-n“1”./a.out
输出是字符数+1乘以“hi”@PavanChandaka:Why+1?换行符也是字符,是OP输入的一部分…这就是问题所在!而(cin>>a)我的意思是键入的字符数+1。我的英语不好。@BaummitAugen:没问题:-)只要选择“回车”不输入任何值。您将看到一个“hi”。这说明您的代码使用“换行符”字符。或者在终端仿真器中关闭行缓冲
int main()
{
int a ;
while ( ( a = cin.get() ) != EOF )
{
cout << a << endl;
cout << "hi" << endl;
} // end while
}