C++ 初学者:std::cin 到 std::string
C++ Beginner: std::cin to std::string
刚开始学习C++,在做练习时遇到了字符串问题。
所以我初始化了std::string phrase;
,同时允许用户输入短语并将其保存到带有std::cin >> phrase;
的字符串中。现在我的问题是当输入的短语有 spaces 时,我注意到计算机只会将字符保存到第一个单词。
加上词组"sunsets are great"
,phrase.size()
只出来了7个,所以第一个space后面的词没有保存。
整个练习应该将整个输入字符串中的所有字母与另一组值进行比较。我应该为此使用不同的功能吗?
如有任何帮助,我们将不胜感激! :)
如果你想要整行包括space(s),你可以使用下面的代码:
string str; // declaration
getline(cin, str);
记住:cin.get
和 cin
将 trim 所有输入的字符紧跟在第一个 space.
之后
尽情享受吧。
我刚开始的时候也遇到过这个问题。
每当您想读取字符串时,我都会使用 getline。
即
string phase
cout << "enter phase" <<endl;
getline(cin,phase);
刚开始学习C++,在做练习时遇到了字符串问题。
所以我初始化了std::string phrase;
,同时允许用户输入短语并将其保存到带有std::cin >> phrase;
的字符串中。现在我的问题是当输入的短语有 spaces 时,我注意到计算机只会将字符保存到第一个单词。
加上词组"sunsets are great"
,phrase.size()
只出来了7个,所以第一个space后面的词没有保存。
整个练习应该将整个输入字符串中的所有字母与另一组值进行比较。我应该为此使用不同的功能吗?
如有任何帮助,我们将不胜感激! :)
如果你想要整行包括space(s),你可以使用下面的代码:
string str; // declaration
getline(cin, str);
记住:cin.get
和 cin
将 trim 所有输入的字符紧跟在第一个 space.
尽情享受吧。
我刚开始的时候也遇到过这个问题。 每当您想读取字符串时,我都会使用 getline。
即
string phase
cout << "enter phase" <<endl;
getline(cin,phase);