gpt4 book ai didi

c++ - stringstream code separating words - 这东西是怎么工作的?里面的代码片段

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:52 25 4
gpt4 key购买 nike

我找到了这段代码,可以将字符串切割成单词。我不知道 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);

最佳答案

i just cant figure out how it knows to cut the words by whitespaces

因为buf的类型是std::string,你需要阅读operator>>的描述,它接受一个std::istream 在左边,std::string 在右边。

引用cppreference.com

Characters are extracted and appended onto str until either:

N characters are read, where N is is.width() if is.width() > 0, otherwise N is str.max_size(),

an EOF marker is read from is, or

isspace(c,is.getloc()) is true for the next character in is.

最后一个子句用英文表示“如果下一个字符是空格则停止”

关于c++ - stringstream code separating words - 这东西是怎么工作的?里面的代码片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com