5

我想读取一个包含多列、不同变量类型的文件。列数不确定,但在 2 或 4 之间。例如,我有一个文件:

  • 字符串整数
  • 字符串 int 字符串双精度
  • 字符串 int 字符串
  • 字符串 int 字符串双精度

谢谢!

我进行了编辑以将列数更正为 2 或 5,而不是最初写的 4 或 5。

4

1 回答 1

5

您可以先阅读该行std::getline

std::ifstream f("file.txt");
std::string line;
while (std::getline(f, line)) {
...
}

然后用stringstream

std::string col1, col3;
int col2;
double col4;
std::istringstream ss(line);
ss >> col1 >> col2;
if (ss >> col3) {
    // process column 3
    if (ss >> col4) {
        // process column 4
    }
}

如果列可能包含不同的类型,则必须先读入字符串,然后尝试确定正确的类型。

于 2013-03-04T16:51:10.813 回答