C++ 关于练习的问题(比亚恩斯购买力平价书)
为什么当我在while循环外输入以空格分隔的字符串,并试图在屏幕上打印它们时,只会出现我键入的第一个字符串,而在while循环内看到的代码会逐个打印所有字符串C++ 关于练习的问题(比亚恩斯购买力平价书),c++,C++,为什么当我在while循环外输入以空格分隔的字符串,并试图在屏幕上打印它们时,只会出现我键入的第一个字符串,而在while循环内看到的代码会逐个打印所有字符串 //this one prints the strings one by one string current; while (cin >> current) { cout << current << " \n"; } //this one only prints the
//this one prints the strings one by one
string current;
while (cin >> current) {
cout << current << " \n";
}
//this one only prints the first one the user types
string current;
cin >> current;
cout << current << " \n";
这是cin默认的操作方式。它跳过任何空格,读取到下一个空格,然后返回该字符串。如果您输入:
testing cin input
您需要执行cin三次才能获得每个单词。这就是while循环中正在发生的事情
我提到默认值是因为您可以将行为更改为不跳过空格 在循环外部,您读取一个字符串并打印它。不管你输入了多少,只有一条输入语句。这就是循环的目的,输入它们。你输入的和程序读取的不一样。您可以编写一个读取一个字符的程序,不管您是否键入50个字符,只有一个字符将被读取。上面的程序也一样,它只读取一个字符串,不管你是否输入了多个字符串,只有第一个字符串会被读取。哦,我明白了。我想我明白了。谢谢。@rm1948所以当我用testing cin input按enter键时,它将在while循环中为我输入的每个字符串执行cin>>当前命令,对吗?这是真的,但如果您输入try this,您将得到try,然后是这个输出。按下“回车”键后,Cin将按顺序读取其中两个。