トピ主さんのソースを元に、私の好みの書き方で書きなおしてみました。
黒文字で書いていますので、どうしても分からない場合にだけ、反転させて御覧ください。m(__)m
#include <stdio.h>
// プロトタイプ宣言
int Write(const char* filePath, const char* writeString);
int Read(const char* filePath, char* readBuffer)
void main(void)
{
char *str = "あいうえお";
char buf[256] = {0};
// 書き込み
switch (Write("Test.txt", str))
{
case 1:
printf("FILE_OPEN_ERROR\n");
return;
case 2:
printf("FILE_CLOSE_ERROR\n");
return;
default:
printf("FILE_WRITE_SUCCESS\n");
printf("WRITE_DATA = %s\n", str);
break;
}
// 読み込み
switch (Read("Test.txt", buf))
{
case 1:
printf("FILE_OPEN_ERROR\n");
return;
case 2:
printf("FILE_CLOSE_ERROR\n");
return;
default:
printf("FILE_READ_SUCCESS\n");
printf("READ_DATA = %s\n", buf);
break;
}
}
// ファイルへ文字列を書き込む
//
// 引数
// const char* filePath = ファイルパス
// const char* writeString = ファイルへ書き込む文字列
//
// 戻り値
// 0 = 正常終了
// 1 = ファイルオープン時にエラー
// 2 = ファイルクローズ時にエラー
int Write(const char* filePath, const char* writeString)
{
// ファイルを書き込みモードでオープン
FILE *fp = fopen(filePath, "w");
// エラー判定
if (fp == NULL)
{
// ファイルオープン時にエラーが発生したので、1を返す
return 1;
}
// ファイルへ文字列を書き込む
fprintf(fp, "%s", writeString);
// ファイルクローズ
if (fclose(fp) == EOF)
{
// ファイルクローズ時にエラーが発生したので、2を返す
return 2;
}
// 正常に終了したので0を返す
return 0;
}
// ファイルへ文字列を書き込む
//
// 引数
// const char* filePath = ファイルパス
// char* readBuffer = 読み込んだ文字列を格納するバッファ
//
// 戻り値
// 0 = 正常終了
// 1 = ファイルオープン時にエラー
// 2 = ファイルクローズ時にエラー
int Read(const char* filePath, char* readBuffer)
{
// ファイルを読み込みモードでオープン
FILE *fp = fopen(filePath, "r");
// エラー判定
if (fp == NULL)
{
// ファイルオープン時にエラーが発生したので、1を返す
return 1;
}
// ファイルから文字列を読み込む
fscanf(fp, "%s", readBuffer);
// ファイルクローズ
if (fclose(fp) == EOF)
{
// ファイルクローズ時にエラーが発生したので、2を返す
return 2;
}
// 正常に終了したので0を返す
return 0;
}