2016-12-12 8 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 

사실 일 것이다있다.

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

감사합니다 게시물 참고하시기 바랍니다보십시오. 이제는 문자가 아닌 숫자이고 배열에 저장할 수 있도록 어떻게 char로 변환 할 수 있습니까? –

+1

@JonH C에서'char','signed char'와'unsigned char'는 실제로는 정수형입니다. –