有人可以告诉我为什么不打印我的完整地址?最终的输出是“你的名字是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;
}
答案 0 :(得分:4)
cin >> address;
这会读取一个单词,停在第一个空格字符处。阅读整行:
std::getline(cin, address);
答案 1 :(得分:2)
输入操作符读取空格分隔的值。因此,如果您的地址中有空格,那么它将只读取第一个“单词。
更糟糕的是,如果您输入您的全名,第一个输入将读取第一个名称,第二个输入将读取第二个名称。
尝试使用std::getline
来阅读整行,但首先要std::cin.ignore(numeric_limits<streamsize>::max(),'\n');
跳过上一个输入的换行符(或者对两个输入都使用std::getline
)。