現在『Cの絵本』をいう参考書を用いながらCの学習を進めております。
その中でバイナリファイルの読み書きを行うコードを本のコードに沿って書いたのですが、
なぜが./a.outコマンドを打っても何も出ません。
本来であれば
10 20 30 40 50 60 70 80 90 100
と出るコードになっております。
どの部分が間違っているか分からないのでどなたか助言をお願い致します。
C
1#include <stdio.h> 2 3main() 4{ 5 FILE *fp; 6 char filename[] = "bintest.dat"; 7 int buf_w[10], buf_r[10]; 8 int i; 9 10 //書き出し用のデータを生成 11 for(i = 0; i < 10; i++) 12 { 13 buf_w[i] = (i + 1) * 10; 14 } 15 if(!(fp = fopen(filename, "wb"))) 16 { 17 return 0; 18 } 19 if(fwrite(buf_w, sizeof(int), 10, fp) != 10) 20 { 21 fclose(fp); 22 return 0; 23 } 24 fclose(fp); 25 26 if(!(fp = fopen(filename, "wr"))) 27 { 28 return 0; 29 } 30 if(fread(buf_r, sizeof(int), 10, fp) != 10) 31 { 32 fclose(fp); 33 return 0; 34 } 35 fclose(fp); 36 37 //読み込んだ内容を表示 38 for(i = 0; i < 10; i++) 39 { 40 printf("%d", buf_r[i]); 41 } 42}
2回め "wr"→"rb"・・・で、どうでしょう?
参考:http://www.c-tipsref.com/reference/stdio/fopen.html
回答2件
あなたの回答
tips
プレビュー