2017-11-27 19 views
0

freadは "size"の読み込み回数を返します。だから私は変数にその値を割り当てているが、数値を印刷したいときは上記のエラーが出る。'FILE *'型のパラメータに 'char [3]'を渡す互換性のないポインタ型

FILE* card_raw = fopen(memory , "r") ; 
int buffer[512] ; 
int readbytes = fread(buffer , 1 , 512 , card_raw) ; 
fprintf("%i" , readbytes); 
+1

でしょうか? –

+6

'fprintf'?あなたは 'printf'を意味しましたか? – user694733

+0

はい私はprintfを意味しました – Pegi

答えて

1

int fprintf(FILE * restrict stream,const char * restrict format, ...);

そして、あなたは3文字の文字列"%i"を渡され、それはそれは不満ものです。

printfの場合、FILEストリームを指定する必要はありません。 printf関数は文字を標準 出力ストリームstdoutに送ります。

printf("%zu",readbytes); 

またタイプsize_treadbytesを宣言。

あなたがstdoutまたはstderrまたはいくつかの他のファイルストリームにそれを印刷したい場合は、構文はメッセージが参照している行fprintf(stderr,"%zu",readbytes)fprintfを使用)

+0

'fprintf()'の 'f'は単に入力ミスであるか、診断メッセージとして意味されるので、' stderr'が見つからない可能性があります。 **編集**:[勝者を獲得](https://stackoverflow.com/questions/47511098/incompatible-pointer-types-passing-char-3-to-parameter-of-type-file/47511218?noredirect = 1#comment81978150_47511098)、それは単にタイプミスです。 –

+0

@FelixPalmen:実際にOPが望んでいたかもしれないのは、あなたがどれくらい読み込まれているかをオペレータがチェックするからです。 – coderredoc

+0

@FelixPalmen:はい、そうです。私たちは勝者を得ました。 – coderredoc

関連する問題