スポンサードリンク
HOME > C言語 > ファイル処理 バイナリモードの読み書き

C言語 - ファイル処理 バイナリモードの読み書き

このページは、ファイル処理の流れ を読んでおくと
理解しやすくなります。



バイナリモードでの読み書きについて説明します。

読み込み処理

読み込み用ファイル:text.txt
star
123

プログラムファイル:program.c
#include <stdio.h>

void main(void) {
   FILE* fp;
   int ss[1];

   fp = fopen("text.txt", "rb");


   while (ss=fgetc(fp)!=EOF) {

      printf("%c", (char)ss);
   }

   fclose(fp);

}


読み込み用ファイル:text.txtを読み込んで、内容を出力するプログラムです。

では、ファイルストリームポインタを宣言しています。

これは、1つのファイルを処理する上で必要なポインタです。

このポインタの中身を知る必要はありません。

続いてでは、ファイルを読み込み用モードでオープンしています。

第2引数は、読み込み用なので、Readのrを指定しています。

そして、バイナリモードでの読み込みなので、binary の b を追加しています。

で実際に読み込みを行っています。

fgetc関数は、1文字読み込んでその値を返します。

そして、ファイルから読み込むデータが無くなったら、EOFが返されるので、

それまで、データを読み込んで出力しています。

出力は、

star 0x0A 0x0D ←改行コードは見えません。
123

は、ファイルのクローズを行っています。



書き込み処理

書き込み用ファイル:text.txt
中身はカラっぽ

プログラムファイル:program.c
#include <stdio.h>

void main(void) {
   FILE* fp;
   char ss[] = "star";
   int a = 123;

   fp = fopen("text.txt", "wb");


   fprintf(fp, "%s\n", ss);
   fprintf(fp, "%d\n", a);

   fclose(fp);

}


書き込み用ファイルに、いろんなデータを書き込むプログラムです。

では、ファイルを書き込みモードでオープンしています。

第2引数は、書き込み用なので、Writeのwを指定しています。

そして、バイナリモードでの読み込みなので、binary の b を追加しています。

で実際に書き込みを行っています。

fprintf関数は、指定したファイルへ書式指定文字列を書き込む関数です。

printf関数のファイル処理バージョンと言う感じです。

ただ、テキストモードと違い、\nを出力すると、0x0A だけが出力されます。

ファイルへの書き込みが終わったら、ファイルクローズして終了です。

この結果、ファイルの中身は以下のようになります。

star 0x0A ←改行コードは、0x0Aだけ
123 0x0A ←改行コードは、0x0Aだけ




スポンサードリンク







HOME

言語解説編
プログラミング用語・知識

C言語

C++言語

Java

C#

Visual Basic.NET

アプリケーション編
C言語による
コンソールプログラミング




Copyright (C) プログラミングランド All Rights Reserved