C言語 CSVファイルの書き込み - stdio.h - [ fprintf ]

2008.09.23 Tuesday | by LRESULT


CSVファイルの書き込みです。

CSVファイルとは、それぞれのデータが『,』(カンマ)で区切られたファイルです。
整数や、小数、文字列が入り混じったデータをCSVファイルで保存するには、
書式付で書き込みの出来る fprintf()関数が適しています。


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形式で保存すると、エクセルなどでも開けるようになるので
データの整理や、エクセルでグラフを描いてみる場合などに便利です。

カテゴリ:C言語 stdio.h | 19:46 | comments(2) | trackbacks(0) | -


コメント

管理者の承認待ちコメントです。

| - | 2011/03/26 6:26 AM |

コメント

管理者の承認待ちコメントです。

| - | 2013/07/31 2:21 PM |

コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/52

トラックバック