我正在学习c ++和阅读c ++ primer plus,但我不明白为什么这段代码需要两个“cin>> ch”。我知道第一个cin将读取用户输入的字符。但是我先删除“cin>> ch”并运行代码,程序没有错误。所以第一个cin是必要的吗?为什么第二个cin不需要用户输入?
#include <iostream>
int main()
{
using namespace std;
char ch;
int count = 0;
cout << "Enter characters; enter # to quit:\n";
cin >> ch; //get a character
while (ch != '#')
{
cout << ch;
++count;
cin >> ch; // get the next character
}
cout << endl << count << " characters read\n";
return 0;
}
答案 0 :(得分:1)
您可以在while
循环的内部条件下评估您的输入。
#include <iostream>
int main()
{
char ch;
int count = 0;
std::cout << "Enter characters; enter # to quit:\n";
while (std::cin >> ch && ch != '#')
{
std::cout << "entered: " << ch << std::endl;
++count;
}
std::cout << std::endl << count << " characters read" << std::endl;
return 0;
}
当输入while
条件时,它将等待您先输入任何内容。收到输入后,它将检查输入是否不是#。如果输入不是#,则输入循环,输入打印输出,计数器增加,然后返回等待另一个输入。如果输入#,则条件变为false,循环中止。
答案 1 :(得分:0)
如果删除第一个cin
,则计数永远不会增加。用户可以在进入循环之前输入#
字符,因此程序永远不能输入。
答案 2 :(得分:-1)
第一个cin&gt;&gt; ch显然用于从用户那里获取输入 再次使用相同的变量名称接受while循环中的数据&#34; ch&#34; , 因此,当您运行程序时,它不会给出错误,但只接受在while循环之前接受的第一个值,而不是while循环。 在while循环中,您可以为变量&#34; ch&#34;分配新值。但不能再接受新价值。