#include <iostream>
using namespace std;
int main()
{
int a ;
while ( ( a = cin.get() ) != EOF )
{
cout << "hi" <<endl;
} // end while
}
我想知道为什么每次输入一次都会输出两次“hi”。
例如
输入:1 输出:嗨 喜
答案 0 :(得分:2)
您的输入实际上包含两个字符:字符1
后跟换行符。
尝试使用仅包含一个字节的文件内容或不带换行符的单字母字符串,并且只能看到一个"hi"
。
答案 1 :(得分:1)
添加一行代码以打印a
的值。这将有助于您了解程序看到的输入值:
int main()
{
int a ;
while ( ( a = cin.get() ) != EOF )
{
cout << a << endl;
cout << "hi" << endl;
} // end while
}
如果您的系统使用ASCII值进行char
编码,您可以通过查找ASCII table找出输出的含义。