0

我正在尝试将字符串值存储到向量中。然后在存储之后我想一个一个地存储在字符串中。在第一步中,将字符串拆分为“,”并存储到向量中。并再次尝试检索并进入字符串。

我的代码:

CString sAssocVal = "test1, test2, test3";

istringstream ss( sAssocVal.GetBuffer(sAssocVal.GetLength()) );

vector<string> words;


string token;
while( std::getline(ss, token, ',') )
{
    words.push_back( token );
}

尝试再次从向量中检索:

for(int i = 0; i<words.size(); i++)
        std::string st= words[i];

但是 st 的值总是变 NULL。

我错过了一些东西。

4

2 回答 2

0

AFAIK 的问题是 istringstream 初始化,一个小的修改使您的示例工作:

http://coliru.stacked-crooked.com/a/698818655cbba4e7

您可以先将 CString 转换为 std::string,关于该问题有很多主题

于 2013-10-11T11:14:43.380 回答
0

我通过使用此代码解决了这个问题。

   CString st;
    for(int i = 0; i<words.size(); i++)
            st= words[i].c_str();
于 2013-10-11T11:55:07.610 回答