前回の質問が説明不足だった為、こちらでもう一度詳しく補足を加え再度質問させていただきます。
↓前回の質問
http://okwave.jp/qa/q6352672.html
読み込むCSVファイルは数値のみです。
具体的な例として数値をあげさせていただきます。
例:ファイル名 test.csv
10,1.1,1.2,1.3
20,2.1,2.2,2.3
30,3.1,3.2,3.3
上記のような4列3行のCSVファイルをC言語を使用し、
10→a 1.1→b 1.2→c 1.3→d
20→e 2.1→f 2.2→g 2.3→h
30→i 3.1→j 3.2→k 3.3→l
といった具合に、任意の列・行の数字を任意の場所へ読み込みをするということが出来ません。
例をプログラムにするとどのようになるのか教えていただきたいです。
よろしくお願いします。
No.1
- 回答日時:
~禁じ手~
カンマで区切られたtes.csvをちょっと加工してしまいます。
加工してもcsvファイルとして問題はありません。
test.csvファイルを任意のエディタで開いて、
カンマ','をスペース' 'に置換してしまえば、プログラムを書くときに、
カンマを気にせずに、読み取ることが出来ます。
windows付属のNotePadとかWordPadだと、Ctrl + h で置換することが出来ます。
カンマで区切られていないと、
ifstreamでファイルストリームを定義して、何も気にせず読むことが出来ます。
ifstream fin("($ファイル名)", ($読み込みモード));
fin >> a >> b >> c >> d;
fin >> e >> f >> g >> h;
fin >> i >> j >> k >> l;
fin.close();
という具合です。
No.2
- 回答日時:
前回はちょっと間違えました。
これでどうでしょう。
char buf[1024];
double a,b,c,d;
double e,f,g,h;
double i,j,k,l;
fgets(buf,1024,fp);
sscanf("%lf , %lf , %lf , %lf",&a,&b,&c,&d);
fgets(buf,1024,fp);
sscanf("%lf , %lf , %lf , %lf",&e,&f,&g,&h);
fgets(buf,1024,fp);
sscanf("%lf , %lf , %lf , %lf",&i,&j,&k,&l);
No.3ベストアンサー
- 回答日時:
「scanf系は使用しない」が推奨されていますが、最も簡単に読み込むなら
int a,e,i;
float b,c,d,f,g,h,j,k,l;
FILE *fp;
fp = fopen("test.csv","rt");
fscanf(fp,"%d,%f,%f,%f\n",&a,&b,&c,&d);
fscanf(fp,"%d,%f,%f,%f\n",&e,&f,&g,&h);
fscanf(fp,"%d,%f,%f,%f\n",&i,&j,&k,&l);
fclose(fp);
でOK。
なお、上記プログラムは「行数と項目数が固定で、実用にならないほど粗悪なプログラム」なので、実用にするには大変な作業と変更が必要です。
1行の項目数が不定な場合は「1項目だけ読んで、次にどんな文字が現われるか?カンマか?改行か?その他の文字か?」って感じで、動的に処理しなければなりません(そしてそれは、ここでは回答不能なくらいの非常に複雑なプログラムになります)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsで2行目から文字化け
-
ファイル内のデータを1行削除...
-
C言語での採番について
-
改行までの一文字ずつのファイ...
-
EOF判定されない
-
【VB.Net】バイト型配列に読み...
-
winsock recvでの文字化け
-
fprintfで出力するファイルのパ...
-
fopen(書き込みモード)でファイ...
-
ファイルサイズ指定し、ファイ...
-
テキストファイルの行数を取得...
-
VBSで指定行に挿入
-
C言語初心者の質問失礼します。
-
バッファとは何ですか
-
どんなプログラムを書いても指...
-
OLE又はDDEを使うVISUAL BESIC...
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
マイクラでPythonのプログラミ...
-
FTPでputすると空ファイルが出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内のデータを1行削除...
-
バイナリファイルをテキストフ...
-
fgetsで2行目から文字化け
-
テキストファイルの行数を取得...
-
c言語 2つのファイルを行ご...
-
C言語での改行コードの扱いにつ...
-
VBSで指定行に挿入
-
改行までの一文字ずつのファイ...
-
【VB.Net】バイト型配列に読み...
-
freadとfwrite
-
巨大なテキストファイル(可変...
-
0バイトファイルの作成
-
fopenで開いたファイルのサイズ...
-
fopen(書き込みモード)でファイ...
-
winsock recvでの文字化け
-
ファイルサイズ指定し、ファイ...
-
fortranで文字列を読み込む際の...
-
【C言語】テキスト読み込みの行...
-
C言語での採番について
-
VS2010 MFC CStdioFileについて
おすすめ情報