我有这段代码,我发现它可以将字符串切成单词。我无法弄清楚 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);