C++ でカンマ "," で区切られたデータファイルを読む方法
データファイル sample.dat には各行に次のようなデータが入っています。
Q,1100,ABCD,8.3,100,8.45,200
T,1200,JET,2.5,300
Q,1500,LOCK,55.5,300,55.7,400
T,1700,JET,2.8,200
Q,2100,JET,2.9,300,3.0,600
<解説>
*1文字目が"Q" から始まるタイプ行の場合
1つ目の変数:"Q"
2つ目の変数:int 型
3つ目の変数:文字列
4つ目の変数:double 型
5つ目の変数:int 型
6つ目の変数:double 型
7つ目の変数:int 型
*1文字目が"T"から始まるタイプの行の場合
1つ目の変数:"T"
2つ目の変数:int 型
3つ目の変数:文字列
4つ目の変数:double 型
5つ目の変数:int 型
*変数の間は空白スペース無しでカンマ "," で区切られている。(見づらくてすみません。)
<質問>
このようなファイルを1行ずつ読んで、3つ目の変数が "JET" の行についてのみ、データを格納したいと思っています。3つ目の変数が "JET" でない場合については4つ目以降の変数は読まなくてかまいません。
3つ目の変数が "JET" の行について、"Q" タイプの行については7つの変数をそれぞれベクトル v1, v2, ..., v7、"T" タイプの行では5つの変数をそれぞれベクトル w1, w2, ..., w5 に格納したいです。
Emacs を用いてカンマ "," を空白スペースに変換して前処理をしたデータファイルを読み込むということをやっていましたが、データファイルが2GB もあるため、そのバケツリレーのような手法は諦めました。C++ のコードの中でできる方法をぜひご教授下さい。お待ちしております。
お礼
詳しく説明していただきありがとうございました。