gpt4 book ai didi

c++ - 当数据包含空格时,如何将制表符分隔文件的内容加载到 C++ 中的二维字符串 vector 中?

转载 作者:行者123 更新时间:2023-11-28 02:36:02 25 4
gpt4 key购买 nike

我有以下代码将制表符分隔文件的内容加载到二维字符串 vector 中。问题是如果数据中有任何空间,这是代码失败。我如何修改代码以将其考虑在内。

const std::size_t columns = 4;
std::string word;
std::size_t count = 0;
std::ifstream in("some_file");
std::vector<std::vector<std::string>> data;
std::vector<std::string> row;
while(in >> word) {
row.push_back(std::move(word));
if(++count % columns == 0) {
data.push_back(std::move(row));
row.clear();
}
}

最佳答案

使用 std::getline 获取整行,然后根据制表符分隔符将该行拆分为单独的字符串。像这样:

#include <sstream>

std::string line;
std::vector<std::vector<std::string>> data;

while(std::getline(in, line)) {
std::string phrase;
std::vector<std::string> row;
std::stringstream ss(line);
while(std::getline(ss, phrase, '\t')) {
row.push_back(std::move(phrase));
}
data.push_back(std::move(row));
}

关于c++ - 当数据包含空格时,如何将制表符分隔文件的内容加载到 C++ 中的二维字符串 vector 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27406893/

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