- ベストアンサー
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等の参考書を読んでも自分では分かりませんでした。 どこが間違っているのか教えてください。 よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
int型のデータをそのまま、ファイルへ格納すると、 人間が読める状態には、なっていません。 但し、バイナリーエディタで読み込めば16進数で表示されますので、その値を知ることができます。 もっと簡単な方法は、一旦文字列に変換して、その文字列をファイルへ書き込む方法です。 int型->文字列変換は sprintfを使用します。 不明点があれば、再度質問して下さい。
その他の回答 (1)
- Tsukasa0215
- ベストアンサー率22% (280/1257)
回答No.1
バイナリファイルのモードで書き出されているので、それをテキストモードで書き出す様に変更して下さい。
質問者
お礼
ありがとうございました!
お礼
ありがとうございました!