具有多列的C ++读取文件

时间:2013-03-04 16:44:22

标签: c++

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

  
      
  • string int
  •   
  • string int string double
  •   
  • string int string
  •   
  • string int string double
  •   

谢谢!

我编辑了将列数更正为原始编写的2或5之间,而不是4或5。

1 个答案:

答案 0 :(得分: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
    }
}

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