• ベストアンサー

int型の値をファイルに保存

int errint(int errnum){  FILE *fp;  if((fp = fopen("error02.txt", "w+b")) == NULL){   printf("ファイルのオープンに失敗しました。\n");   exit(-1);  }  fwrite(&errnum,sizeof(errnum),1,fp);  fclose(fp); } int型の値を受け取ってファイルに 保存する関数を作ったのですが 出力されるテキストが 文字化けしていてうまく動きません。 独習C等の参考書を読んでも自分では分かりませんでした。 どこが間違っているのか教えてください。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

int型のデータをそのまま、ファイルへ格納すると、 人間が読める状態には、なっていません。 但し、バイナリーエディタで読み込めば16進数で表示されますので、その値を知ることができます。 もっと簡単な方法は、一旦文字列に変換して、その文字列をファイルへ書き込む方法です。 int型->文字列変換は sprintfを使用します。 不明点があれば、再度質問して下さい。

noname#7416
質問者

お礼

ありがとうございました!

その他の回答 (1)

回答No.1

バイナリファイルのモードで書き出されているので、それをテキストモードで書き出す様に変更して下さい。

noname#7416
質問者

お礼

ありがとうございました!

関連するQ&A