我想读取一个包含多列、不同变量类型的文件。列数不确定,但在 2 或 4 之间。例如,我有一个文件:
- 字符串整数
- 字符串 int 字符串双精度
- 字符串 int 字符串
- 字符串 int 字符串双精度
谢谢!
我进行了编辑以将列数更正为 2 或 5,而不是最初写的 4 或 5。
我想读取一个包含多列、不同变量类型的文件。列数不确定,但在 2 或 4 之间。例如,我有一个文件:
- 字符串整数
- 字符串 int 字符串双精度
- 字符串 int 字符串
- 字符串 int 字符串双精度
谢谢!
我进行了编辑以将列数更正为 2 或 5,而不是最初写的 4 或 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
}
}
如果列可能包含不同的类型,则必须先读入字符串,然后尝试确定正确的类型。