c++ 当std::cin到std::string带有空格时发出

zzoitvuj  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(107)

刚开始学习C++,在做练习时遇到了字符串问题。
所以我初始化了std::string phrase;,同时允许用户输入并保存短语到字符串std::cin >> phrase;。现在我的问题来了,当输入的短语有空格时,我注意到计算机只会保存字符,直到第一个单词。
对于短语"sunsets are great"phrase.size()只出来了7,所以第一个空格后面的单词没有保存。
整个练习应该是将整个输入字符串中的所有字母与另一组值进行比较。我是否应该使用不同的函数来实现这一点?

35g0bw71

35g0bw711#

我刚开始的时候也遇到过这个问题。每当你想读一个字符串的时候,我都会使用getline。

string phase
cout << "enter phase" <<endl;
getline(cin,phase);
gr8qqesn

gr8qqesn2#

如果要获取包括空格的整行,可以使用以下代码:

string str; // declaration
getline(cin, str);

记住:cin.getcin将在第一个空格之后修剪所有输入的字符。
好好享受。

相关问题