如何分割空间和标签分化文件行? [重复](How to split a file lines w

2019-07-29 09:44发布

这个问题已经在这里有一个答案:

  • 如何记号化在C ++字符串? 35个回答

我有以下格式的文件

星期一1000年1月1日(TAB)喜打招呼(TAB)怎么R您

有没有办法读取这种文本使用方式'\t'单独作为分隔符(而不是空间)?

因此,样本输出就可以了,

周一1000年1月1日

你好

你好吗

我不能使用fscanf() ,因为它读取,直到只有第一个空间。

Answer 1:

只使用标准库:

#include <sstream>
#include <fstream>
#include <string>
#include <vector>

std::ifstream file("file.txt");

std::string line;
std::string partial;

std::vector<std::string> tokens;

while(std::getline(file, line)) {     // '\n' is the default delimiter

    std::istringstream iss(line);
    std::string token;
    while(std::getline(iss, token, '\t'))   // but we can specify a different one
        tokens.push_back(token);
}

你可以在这里得到一些更多的想法: 我如何记号化在C ++字符串?



Answer 2:

从boost:

#include <boost/algorithm/string.hpp>
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("\t"));

你可以在那里指定任何分隔符。



文章来源: How to split a file lines with space and tab differentiation? [duplicate]