Zep*_*yer 1 c++ stringstream bitwise-operators
我有这个代码,我发现将字符串切成单词.我无法弄清楚while部分是如何工作的.如何知道将没有空格的单词提取到buf变量?似乎提取运算符(>>)既用于将位进入缓冲区,又用于循环返回true - 我只是无法弄清楚它是如何通过空格来切割单词的.
string buf; // Have a buffer string
stringstream ss(str); // Insert the string into a stream
vector<string> tokens; // Create vector to hold our words
while (ss >> buf)
tokens.push_back(buf);
Run Code Online (Sandbox Code Playgroud)
我只是无法弄清楚它是如何通过空格切割文字的
由于类型buf是std::string,你需要阅读说明的operator>>是需要一个std::istream在左,一个std::string在右.
提取字符并附加到其中,
str直到:
N字符阅读,其中N是is.width()如果is.width() > 0,否则N就是str.max_size(),从
is或中读取EOF标记
isspace(c,is.getloc())适用于下一个角色is.
最后一句用英语说"如果下一个字符是一个空格就停止"