gpt4 book ai didi

c++ - 如何在 stringstream 中放入一个字符串

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:36 24 4
gpt4 key购买 nike

我有一个 vector :

vector<stringstream*> ssv;
for (int i = 0; i < cIter; i++) {
ssv.push_back(new std::stringstream);
}

如何放入 vector ssv 字符串的元素?

我尝试:

string s1 = "easfef" + '\n';
int i = 0;
*ssv[i] << s1 << '\n';

但它给了我一个空字符串:

string sdf = ssv[i]->str();

我该怎么做?

感谢您帮助处理 '\n',但它仍然是 vector 的问题:如果我写:

std::string s1 = "qwerqwr\n";   // for example
int i = 0;
*ssv[i] << s1;

但是像以前一样给我一个空字符串

string sdf = ssv[i]->str();

最佳答案

您的主要问题是如何初始化字符串:

"easfef" + '\n'

"easfef" 衰减为 const char * 并且 '\n' 被提升为 int 值为 10(假设为 ASCII)。然后,将两者相加,得到一个指向字符串文字之外某处的指针。很可能发生车祸,还有你的妈妈被恐龙吃掉。

解决这个问题的一个简单方法是强制执行 std::string:

std::string s1 = std::string("easfef") + '\n';

更简单的方法是内联换行符:

std::string s1 = "easfef\n";

关于c++ - 如何在 stringstream 中放入一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291896/

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