8.4 ファイルアクセス

  5.サンプルプログラム2 (ファイルへの文字列の読み書き)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define f_name "sample.txt" /* 作成するファイルの名前 */

#define num 80               /* 1 度に読み込む文字数 */

int main(void){

 int len;
 char str[ ] = "abcdefgh",   /* ファイルに書き込む文字列 */
    line[num],               /* 1 行のデータ */
   *endf;                   /* ファイルの終了確認用 */
 FILE *fp;                  /* ファイルポインタ */

 /*** 入力文字列の設定 ***/
 len = strlen(str);           /* 書き込む文字列の長さ計算 */
 str[len+1] = '\n';           /* 文字列の後ろに終端記号を代入 */

 /*** ファイルが存在するときは内容を表示して終了 ***/
 fp = fopen(f_name, "r");     /* ファイルを読み込み用にオープン */
 if (fp != NULL){             /* ファイルが存在する */
  endf = fgets(line, num, fp);
  printf("file exists!!\n");
  while(endf != NULL){
      puts(line);
    endf = fgets(line, num, fp);
  }
  fclose(fp);
   exit(1);                   /* プログラムの終了 */
 }


 /*** ファイルが存在しないときは文字列を書き込む ***/
 fp = fopen(f_name, "w");
 fputs(str, fp);
 fputc('\n', fp);
 fclose(fp);

}

 


2003年5月3日 13:05 更新