dポイントプレゼントキャンペーン実施中!

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等の参考書を読んでも自分では分かりませんでした。
どこが間違っているのか教えてください。
よろしくおねがいします。

A 回答 (2件)

int型のデータをそのまま、ファイルへ格納すると、


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

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

お礼日時:2004/07/16 16:04

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2004/07/16 16:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!