複数の列があり、変数の種類が異なるファイルを読みたいと思います。列の数は不明ですが、2 ~ 4 の間です。たとえば、次のファイルがあります。
- 文字列整数
- 文字列 int 文字列 double
- 文字列 int 文字列
- 文字列 int 文字列 double
ありがとう!
最初に書かれた 4 または 5 ではなく、2 または 5 の間に列の数を修正するように編集しました。
複数の列があり、変数の種類が異なるファイルを読みたいと思います。列の数は不明ですが、2 ~ 4 の間です。たとえば、次のファイルがあります。
- 文字列整数
- 文字列 int 文字列 double
- 文字列 int 文字列
- 文字列 int 文字列 double
ありがとう!
最初に書かれた 4 または 5 ではなく、2 または 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
}
}
列に異なる型が含まれている可能性がある場合は、最初に文字列を読み取ってから、適切な型を判断する必要があります。