

データファイル 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++ のコードの中でできる方法をぜひご教授下さい。お待ちしております。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
D-Matsu 様、早速のご回答ありがとうございました。コンマで分けられているデータを1行まるごと読んで後から分けるというのは、なぜか心理的抵抗があったのですが、うまく行きました。途中、いろいろと勉強にもなりました。
またよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
最早開始時間と最遅完了時刻を...
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での奇数の和
-
Haskellで関数を合成しようとす...
-
式は定数値が必要です」という...
-
C言語での引数の省略方法
-
未解決の外部シンボル _printf...
-
CStringの配列要素を関数で受け...
-
「指定されたキャストは有効で...
-
return 1L
-
複数桁10進数の*桁目だけを抽出...
-
任意の文字列のアルファベット...
-
入力された数字を大きい順に並...
-
C言語のプログラム作成について
-
【C++】行列データの読み込み
-
2次元配列とポインタの引数受け...
-
数字列を3桁ごとにカンマで区切...
-
C言語 配列と関数の練習問題
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
複数桁10進数の*桁目だけを抽出...
-
return 1L
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
式は定数値が必要です」という...
-
数字列を3桁ごとにカンマで区切...
-
実数の整数部,小数部の取得
-
C言語でDxlibを使って3x3の奇数...
-
プログラムについて(UNIX)
-
acceptをalarmでタイムアウトさ...
-
C言語の課題です
-
エラー 添字が付けられた値が、...
-
CStringの配列要素を関数で受け...
-
最早開始時間と最遅完了時刻を...
-
入力された数字を大きい順に並...
おすすめ情報