今、参考書を参考にバイナリファイル(ファイルの入出力)の勉強をしている所です。
参考書のサンプルの実行結果(参考書に書かれてる結果)と
そのサンプルを私が実行した結果とが、少し違っているので
何度もスペルミスなど無いかどうか確認してみたのですが、うまく表示できませんでした。
↓バイナリファイルを作るプログラム(参考書のサンプルプログラム引用)
#include <stdio.h>
int main()
{
FILE *fp;
char *str = "ABC";
int a[3] = {14, 15, 16};
fp = fopen("binary.b", "wb");
fwrite(str, sizeof(char), strlen(str), fp);
fwrite(a, sizeof(int), 3, fp);
fclose(fp);
printf("書き込み終了。\n");
return 0;
}
↑これをバイナリエディタで開いて見ると↓41 42 43 0E 00 00 00 0F 00 00 00 10 00 00 00
です。
↓このプログラムは、↑のバイナリファイルを読み出すプログラムです。(参考書のサンプルプログラム引用)
#include <stdio.h>
int main()
{
FILE *fp;
int a[3];
char buf[8];
memset(buf, '\0', sizeof(buf[8]));
fp = fopen("binary.b", "rb");
fread(buf, sizeof(char), 3, fp);
fread(a, sizeof(int), 3, fp);
fclose(fp);
printf("%s, %d, %d, %d\n", buf, a[0], a[1], a[2]);
return 0;
}
参考書の実行結果(コマンドプロンプト)にはABC, 14, 15, 16
となっているのですが、私の実行結果(コマンドプロンプト)では
ABCフフフフフフフフフフフフフ■(←小さい白塗りの四角), 14, 15, 16
となってしまいます。
OS:Windows VISTA
環境:VC++ 2008
です。
フフフフフフフフフフフフフ■(←小さい白塗りの四角)
↑この部分が、できれば表示されない様にしたいのです。
無視して、このまま先に進んだ方がいいのでしょうか?
それとも、ここで解決しておいた方がいいのでしょうか?^^;
ご指導の程、宜しくお願い致します。