有人能告诉我为什么它不能打印我的完整地址吗?最后的输出是“你的名字是Syd,你住在2845号。”它为什么要这么做?我在cout中清楚地声明了要打印地址字符串。(顺便说一下,我实际上输入了2845 SE Taylor Street)
#include <iostream>
using namespace std;
int main()
{
string address;
cout << "Please enter your address." << endl;
cin >> address;
cout << "You live at " << address << "." << endl;
return 0;
}
发布于 2013-10-18 14:36:08
cin >> address;
这将读取一个单词,并在第一个空格字符处停止。要阅读整行内容:
std::getline(cin, address);
发布于 2013-10-18 14:35:56
输入操作符读取空格分隔的值。因此,如果您的地址中有空格,那么它将只读取第一个“单词”。
更糟糕的是,如果您输入全名,第一个输入将读取第一个姓名,第二个输入将读取第二个姓名。
尝试使用std::getline
读取整行,但首先使用std::cin.ignore(numeric_limits<streamsize>::max(),'\n');
跳过最后一个输入的换行符(或者对两个输入都使用std::getline
)。
https://stackoverflow.com/questions/19452294
复制