0

我有以下字符串“0 1 2 3 4”(字符串末尾有一个空格)。我想将其拆分并添加到字符串向量中。当我使用循环和字符串流时,程序将自身循环到最后一个数字为 4 的无限循环中。它不想停止。

如何拆分以下内容并同时添加到字符串向量中。

请指教。

stringstream ss(currentLine);
for(int i=0;i<strlen(currentLine.c_str());i++){
      ss>>strCode;
      strLevel.push_back(strCode);
    }
4

2 回答 2

5
std::ifstream infile(filename.c_str());
std::string line;

if (infile.is_open())
{
    std::cout << "Well done! File opened successfully." << std::endl;

    while (std::getline(infile, line))
    {
        std::istringstream iss(line);
        std::vector<std::string> tokens { std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>() };

        for (auto const &token : tokens)
            if (!token.compare("your_value"))
                // Do something....
    }
}

首先,我们只使用 读取一行std::istringstream iss(line),然后根据空格分割单词并将它们存储在tokens向量中。

更新:感谢 Nawaz 的改进建议(见评论)。

于 2013-08-10T10:51:27.050 回答
4
stringstream ss(currentLine);
while ( ss >> strCode )
    strLevel.push_back(strCode);

这应该足够了。

于 2013-08-10T10:45:40.557 回答