2016-12-05 2 views
1

私はCodeblocks 16.11で簡単なプログラムを実行しようとしています。私は私のファイルは、「ABCDEFGHIJKは」内部書いてそのわずかTXTをmayus.txt C fread charコードブロック

FILE *fo; 
FILE *ft; 
char c; 

if ((fo = fopen("mayus.txt", "r")) == NULL){ 
     perror("opening mayus"); 
    } 

int m; 
m= fread(c, 1, 1, fo); 
printf("I just read for the first time with result m = %d\n",m); 
...次のコードでは、ファイルから文字を読み取ろうと動けなくなります。私はm = 1でprintfを見ることを期待していますが、コンソールではm = 0が得られます。

+2

注意です戻る。ファイルを開くときにエラーが発生すると、コードは未開封のファイルハンドルを引き続き使用します。これはあなたのプログラムの健康には良いことではありません。 –

答えて

3

freadプロトタイプチェック:まず

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

のでm= fread(c, 1, 1, fo);はあなたが必要とする何が間違っ

ある `にperror()は`エラーを報告しますがないこと

m = fread(&c, 1, 1, fo); // the first param should be a pointer to the buffer 
+0

あなたは完全に正しいです。そのような単純な間違い。どうもありがとうございました" – Asdemuertes