C언어 파일 입출력 입니다;; 이 코딩의 오류를 잘 모르겠습니다.

seojh1431의 이미지

int main()
{
	FILE *fp = fopen("list.txt", "r");          //텍스트파일 list.txt를 읽기용으로.
	char data;
 
	if (fp == NULL)
	{
		printf("파일 열기 오류! \n");
		return 0;
	}
 
	while (data=fgetc(fp) != EOF)            //파일의 끝이 아니라면 읽기용으로 선언한 list.txt를 가리키는 파일포인터에 있는 내용을 읽어옵니다.
	{
 
		if (data == EOF) break;         //만일 fp가 파일의 끝이라면 반복루프에서 빠져나갑니다
 
		putchar(data);              //여기서 읽어들인 data를 프롬프트화면에 출력.. 여기서 오류가 나는것같습니다.
 
	}
	fclose(fp);
 
 
 
}
jick의 이미지

data=fgetc(fp) != EOF

이렇게 쓰면 data = (fgetc(fp) != EOF) 가 됩니다. 연산자 우선순위를 찾아보세요.

그리고 while문에서 비교를 하고 if (data == EOF) break가 또 나오는 걸 보니 각 문장의 의미가 뭔지 잘 이해를 못하시는 것 같습니다. 각각의 문장의 의미가 뭔지, 어떤 상황에서 프로그램이 어느 줄로 이동하는지, 찬찬히 생각해 보세요.

dltkddyd의 이미지

while ( (data=fgetc(fp) ) != EOF) {
//진술문
}

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

cinsk의 이미지

fgetc()의 return 값은 int 타입으로 받아야 합니다. (EOF가 int이기 때문) char로 받으면 안됩니다.