C言語でテキストに読み書きする方法

ゆうき( @BASEBALLY15 )です^^

今日は何か質問があるのかね?

現在,C言語を勉強しているのですが,文字をテキストに書き込んだり,読み込んだりする方法を教えて欲しいです・・・

了解じゃ!
(※Visual Studio 2017を使用)

テキストファイルを作ろう!

最初に,テキストファイルを作っておきます.

メモ帳を保存します.

今回は,「read_write.txt」という名前で保存しておきます.

(※ファイル名は自由に決めても大丈夫です.)

テキストファイル

それでは,コードを見ていきましょう⤵

ヘッダーファイル

今回使うヘッダーファイルを読み込んでおきます.

#include "pch.h"

#include <stdio.h>

//exit()を使う際に必要
#include <stdlib.h>

次に,C言語でテキストファイルに文字を書き込んだり,

読み込んだりするためのコードをご紹介します.

コード

C言語でテキストファイルに文字を書きこむには!?

まずは,C言語を使ってテキストファイルに文字を書きこむ方法をご紹介します.

最終的には,テキスト上にこのように表示されます⤵

C言語でテキストファイルに文字を書きこむ
int main(void)
{
	//FILEポインタを用意
	FILE *out_file;

	//書き込むためのファイルを用意
	out_file = fopen("C:\\oooo\\xxxxxxx\\read_write.txt", "wt");

	//もし,書き込むためのファイルがない場合・・・
	if (out_file == NULL)
	{
		//存在しないことを知らせる.
		printf("ファイルは存在しません!\n");

		//強制終了する
		exit(1);
	}

	//テキストに書き込む
	fputs("C言語でメモ帳に文字を書いてみた!\n", out_file);

	//ファイルを閉じる処理
	fclose(out_file);

	//プログラムが正常に終了したことを知らせる
	return 0;
}

fopen()』でファイルを開き,テキストファイルに書き込むための準備をします.

ちなみに,“wt”書き込むということを意味しています.

そして『if文』でファイルがない場合の処理を行い,

fputs()』でテキストファイルに文字を書きこんでいきます.

最後に,ファイルを閉じて『return 0』で,正常に終了したことを知らせたら完了です^^

C言語でテキストファイルの文字を読み込むには!?

次に,先ほど書き込んだテキストファイルの文字を読み込んでみます.

最終的に実行すると,このように表示されます.

C言語でテキストファイルの文字を読み込む

それでは,コードを見ていきましょう⤵

int main(void)
{
	//読み込んだテキストを格納するために用意
	char text;

	//FILEポインタを用意
	FILE *read_file;

	//テキストファイルを読み込む
	read_file = fopen("C:\\oooo\\xxxxxxx\\read_write.txt", "rt");

	//もし,テキストファイルが無いなら・・・
	if (read_file == NULL)
	{
		//ファイルが存在しないことを知らせる
		printf("ファイルは存在しません!\n");

		//強制終了
		exit(1);
	}

	//読み込むファイルの文字が無くならない間,続ける
	while ((text = fgetc(read_file)) != EOF)
	{
		//読み込んだ文字を表示
		printf("%c", text);
	}

	//ファイルを閉じる
	fclose(read_file);
	
	//プログラムが正常に終了したことを知らせる
	return 0;
}

if文』までは,書き込むときと流れが同じなので,説明は割愛させていただきますね^^

ちなみに,『fopen()』内の“rt”は読み込む準備をするために書きます.

while ((text = fgetc(read_file)) != EOF)』で,読み込む文字が無くならない間,作業を繰り返します.

今回のコードの場合,『fgetc』で1文字ずつ読み込み,表示していきます.

(※EOFEnd Of Fileの略で,ファイルの終わりを意味しています.)

おまけ

fputcとfputsの違いとは?

  • fputc・・・1文字ずつ書き込む
  • fputs・・・文字列でまとめて書き込む

fgetcとfgetsの違いとは?

  • fgetc・・・1文字ずつ読み込む
  • fgets・・・文字列でまとめて読み込む

終わりに

今回は,C言語を使ってメモ帳に書き込んだり読み込んだりしました.

この方法を使うと,例えば画像のピクセル数をヒストグラムで表した時の値を読み書きすることが出来ます.

ぜひ,試してみてください^^

それでは・・・

Q &A

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA