gpt4 book ai didi

c++ - 为什么 stringstreams rdbuf() 和 str() 给我不同的输出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:23 24 4
gpt4 key购买 nike

我有这个代码,

int main()
{
std::string st;
std::stringstream ss;
ss<<"hej hej med dig"<<std::endl;

std::getline(ss,st,' ');
std::cout <<"ss.rdbuf()->str() : " << ss.rdbuf()->str();
std::cout <<"ss.rdbuf() : " << ss.rdbuf();
return 0;
}

给我这个输出

ss.rdbuf()->str() : hej hej med dig

ss.rdbuf() : hej med dig

但这是为什么呢?是因为 ostreams 对 operator

最佳答案

ss.rdbuf()->str();

返回所有缓冲区内容的拷贝。

在做什么std::cout << ss.rdbuf();

查看说明

basic_ostream<charT,traits>& operator<<(basic_streambuf<charT,traits>* sb);

它从缓冲区逐个字符地读取并将它们写入ostream,直到eof/写入失败/异常发生。

你已经读过 buff 中的一个词。现在它读取其余部分。

关于c++ - 为什么 stringstreams rdbuf() 和 str() 给我不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/727737/

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