【发布时间】:2020-05-26 00:29:58
【问题描述】:
我刚开始学习 C++,在我的程序中遇到了一个小错误:
#include <iostream>
using namespace std;
int main() {
string name;
int number;
cout << "Hello!\n";
cout << "Please enter your name: " << flush;
cin >> name;
cout << "Please enter a whole number: " << flush;
cin >> number;
cout << "Thank you for your cooperation, " + name + ". We will be contacting you again soon in regards to your order of " << number << " puppies.\n";
}
当尝试输入多个单词(例如,No One)时,它第一次要求用户输入时,程序将输出以下内容:
请输入一个整数:谢谢您的合作,不,我们会尽快就您订购的 0 只小狗再次与您联系。
我在其他地方读到cin 对所有空格都一视同仁(因此空格将被视为与返回相同),我该如何避免这个问题?
【问题讨论】:
-
你可以看看
std::getline。默认情况下,一次读取输入一行。 -
"我在别处读到
cin对所有空格都一视同仁" - 不是cin以这种方式处理空格,而是operator>>特别是是,因为它旨在读取 空格分隔 标记。因此,在您的示例中,使用std::getline()将多字输入读入name,然后>>可以读取number。
标签: c++ whitespace cin