直奔问题:
这段代码,
#include <iostream>
using namespace std;
int main() {
std::string string = "9 9";
std::cout << string;
return 0;
}
返回 9 9
作为输出。
然而,当输入 9 9
到这个代码时,
#include <iostream>
using namespace std;
int main() {
std::string string;
std::cin >> string;
std::cout << string;
return 0;
}
它输出 9
。为什么会这样?
我想这与空间有关,但是有什么办法可以避免这种情况吗?我必须说空格是数字之间唯一有效的分隔符。
最佳答案
std::cin
一次一个字。要使用整条线,您需要使用 getline()
功能。
用法:
std::getline (std::cin,name);
你的情况:这应该在你 include <string>
时起作用:
#include <iostream>
#include <string>
int main() {
std::string MyString;
std::getline (std::cin, MyString);
std::cout << MyString;
return 0;
}
建议:你永远不要使用 using namespace std;
了。此外,使用正确的变量名称。
关于c++ - 为什么 std::string 不能在用户输入中占用空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36927917/