我从 Walter Savitch Absolute C++ 书中直接摘取了以下示例。它有效(正如人们对 Walter Savitch 这样的学者所期望的那样)。但是,我很困惑为什么我将在代码引用后解释:
cout << "Enter a line of input and I will echo it:\n";
char symbol;
do
{
cin.get(symbol);
cout << symbol;
} while (symbol != '\n');
cout << "That's all for this demonstration.\n";
可能的输出如下所示:
Enter a line of input and I will echo it:
Do Be Do 1 2 34
Do Be Do 1 2 34
That's all for this demonstration.
我的问题如下。在只循环一次的情况下,cin.get(symbol) 将一次找到一个字符,然后 cout 将输出这个字符。然后,如果我的输入不是 '\n' 字符,它将第二次进入循环,依此类推,直到最后输入等于 '\n'。
但是,在执行代码时,所有输入似乎都被一次读取,然后一次复制回来。如果需要检查每个输入字符是否等于'\n',这怎么会发生?
最后一点,可能是显而易见的:这个问题与某种非语法的代码无关。我只是对上面介绍的简单代码的编译和/或执行过程中发生的事情感到困惑。
希望有人可以帮助我!
谢谢。