C言語 CSVファイルの書き込み - stdio.h - [ fprintf ]
2008.09.23 Tuesday | by LRESULT
CSVファイルの書き込みです。
CSVファイルとは、それぞれのデータが『,』(カンマ)で区切られたファイルです。
整数や、小数、文字列が入り混じったデータをCSVファイルで保存するには、
書式付で書き込みの出来る fprintf()関数が適しています。
書式 | int fprintf( FILE *fp, const char *format, ... ) |
---|---|
機能 | ファイルへ書式付きで書き込む |
引数 | FILE *fp : ファイル(ストリーム)ポインタ const char *format : 書式文字列 ... : 可変個引数。書式で指定された変数をカンマ区切りで指定 |
戻り値 | 成功すると、書き込んだバイト数を返し、 失敗すると、負値を返します。 |
CSV形式で「comma.csv」というファイルに以下の内容を書き込みます。 test01,10,11,1.0,1.1 test02,20,21,2.0,2.1 test03,30,31,3.0,3.1 書式としては、「文字列,整数,整数,小数,小数」という並びなので fprintf()を使って書き込みます。 |
---|
#include <stdio.h> int main(void) { FILE *fp; char *fname = "comma.csv"; char *s1 = "test01"; char *s2 = "test02"; char *s3 = "test03"; int n1 = 10; int n2 = 20; int n3 = 30; float f1 = 1.0; float f2 = 2.0; float f3 = 3.0; fp = fopen( fname, "w" ); if( fp == NULL ){ printf( "%sファイルが開けません¥n", fname ); return -1; } fprintf( fp, "%s,%d,%d,%f,%f¥n", s1, n1, n1+1, f1, f1+0.1 ); fprintf( fp, "%s,%d,%d,%f,%f¥n", s2, n2, n2+1, f2, f2+0.1 ); fprintf( fp, "%s,%d,%d,%f,%f", s3, n3, n3+1, f3, f3+0.1 ); fclose( fp ); printf( "%sファイル書き込みが終わりました¥n", fname ); return 0; } |
comma.csvファイル書き込みが終わりました |
---|
fopen()のモードを"w"にすることや、fprintf()の書式に「,」(カンマ)を入れることを 忘れないようにして下さい。 csv形式で保存すると、エクセルなどでも開けるようになるので データの整理や、エクセルでグラフを描いてみる場合などに便利です。 |