2016-12-12 9 views
0

私のCコードには小さな問題があります。私は特定の文字やEOF(今見たようなパラメータから)を打つまで、ファイルを読みたいです。 char *readUntil(FILE *stream, char character, size_t *length) 特定の文字またはEOFまでファイルを読み取る方法は?

私はこのループを使用して、ストリームの終了または文字が一致するまで読むことをint i = 0while((i = fgetc(stream)) != character || i != EOF){}としました。しかし、それは動作していないようです。問題は何ですか?それを修正する方法は?

+0

は[MCVE] –

+6

'しばらく((I =はfgetc(ストリーム))!=文字&&私!= EOF){}' '&&' –

答えて

3

このライン

while((i = fgetc(stream)) != character || i != EOF){} 

いずれか

i = fgetc(stream)) != character 

または

i != EOF 

として永遠の意志ループがtrueになります。

while((i = fgetc(stream)) != character && i != EOF){} 
+1

はありがとうござい注意投稿してください試してみてください。私は文字ではなく数字ですから、どのようにcharに変換して配列に格納できますか? –

+1

@JonH Cでは、 'char'、' signed char'と 'unsigned char'は実際には整数型です。 –

関連する問題