안녕하세요 저는 리눅스에서 gcc -Wall -std = c99 및 a./out을 사용하여이 C 프로그램을 실행하고 있습니다. 나는 어떤 경고/오류도 내지 않는다. 그러나 파일에서 읽은 정보를 인쇄 할 때 미친 출력이납니다.열기/C에서 텍스트 파일 읽기
A13
B99
C2
D2
E44
F32
G2
H9
을 출력은 다음과 같습니다 : 파일이 포함
id: A
size: 171522370
id: C
size: 876939826
id: 4
size: 843516466
코드가
typedef struct record{
char id;
int size;
}record;
int main()
{
record reg;
FILE *fp = NULL;
fp = fopen("idSize.txt", "r");
if ((fp = fopen("idSize.txt", "r")) == NULL){
printf("error opening file");
exit(1);
}
fread(®, sizeof(reg),1,fp);
while (!feof(fp)){
printf("id: %c\n", reg.id);
printf("size: %d\n", reg.size);
fread(®, sizeof(reg),1,fp);
}
fclose(fp);
return 0;
}
어떤 도움은 매우 극명하게 될 것이다있다! 덕분 로트
, 그것은 읽기 쉬운 그래서 코드를 서식에 어떤 노력을하시기 바랍니다. 우리가 당신을 도울 수있게하십시오. –
미안하지만 이것은 완전히 혼란입니다. 바이트 스트림을 구조체로 읽는 것처럼 코딩하기 때문에 파일 텍스트 또는 이진 파일입니다. 아마도 fscanf를 대신 사용 하시겠습니까? – OldProgrammer