今、参考書を参考にバイナリファイル(ファイルの入出力)の勉強をしている所です。
参考書のサンプルの実行結果(参考書に書かれてる結果)と
そのサンプルを私が実行した結果とが、少し違っているので
何度もスペルミスなど無いかどうか確認してみたのですが、うまく表示できませんでした。
↓バイナリファイルを作るプログラム(参考書のサンプルプログラム引用)
#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
です。
フフフフフフフフフフフフフ■(←小さい白塗りの四角)
↑この部分が、できれば表示されない様にしたいのです。
無視して、このまま先に進んだ方がいいのでしょうか?
それとも、ここで解決しておいた方がいいのでしょうか?^^;
ご指導の程、宜しくお願い致します。