CSVファイルを関数fscanf()で読み取る
CSVファイルとはMicrosoftExcelでの入出力が便利にできているファイル形式で,Excelの各セルの内容がカンマ(,)で区切られた形式のファイルである。
例
excel画面 | CSVファイル | ||||||||||||||||||||
|
123,456,789,1234 2.30,3.30,4.30,5.30 abc,def,ghi,jkl |
このCSVファイルを読み取るときに
1行目はfscanf(fp,"%d,%d,%d,%d",&a,&b,&c,&d);のように書くことができる
2行目はfscanf(fp,"%lf,%lf,%lf,%lf",&p,&q,&r,&s);のように書くことができる
しかし%sの書式はカンマで区切ることができないので,工夫を要する。
そこで次のようにscanfを使うことができる。これはscanfの詳細な説明が必要になる。
詳細な説明は,別のところに譲る。
CSVファイルを関数fscanf()で読み取るプログラム例 |
#include "stdio.h" |
読み込んだファイル tt.csv 文字列データには空白も含まれている |
123 test1,test2,test3,space 1,space 2,abc,xyz/xyz 12,23,34,45 23,34,45,56 10,20,30,40 |
実行結果 (うまく読めているのがわかる) |
>tt.exe num=123 0:[test1] 1:[test2] 2:[test3] 3:[space 1] 4:[space 2] 5:[abc] 6:[xyz/xyz] 12 23 34 45 23 34 45 56 10 20 30 40 |