일부 데이터를 저장하기 위해 fwrite
을 사용했고 이제는 처리를 위해 txt 파일에서 데이터를 읽으려고 fread
을 사용하려고합니다. 개별적으로 값을 읽고 싶지만 어떻게 할 수 있는지 알 수 없습니다. 이것은 내가 시도 것입니다 :fread를 사용하여 파일 값을 값으로 읽으려면 어떻게해야합니까?
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * pFile;
long lSize;
unsigned short * buffer;
size_t result;
pFile = fopen ("myfile.txt" , "rb");
// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
// allocate memory to contain the whole file:
buffer = (unsigned short *) malloc (sizeof(unsigned short)*lSize);
// copy the file into the buffer:
result = fread (buffer,1,lSize,pFile);
printf("%uz\n", result);
// terminate
fclose (pFile);
free (buffer);
return 0;
}
위의 프로그램은 잘 컴파일하지만 ./a.out
그것을 실행할 때 나는 세그먼트 오류를 얻을. sudo ./a.out
으로 실행할 때 seg fault는 발생하지 않지만 아무것도 출력하지 않습니다. 문제를 해결하기 위해 무엇을 할 수 있습니까?
여기에 어떤 에러 체크를 수행
읽기 당신은 확실히 사용할 수있는 하나의
에 의해 하나의 객체를'PFILE = fopen ("myfile.txt", "rb"); ' –
@ πάνταῥεῖ 너와 뭐야? 내가 확인 했니? 파일을 열면됩니다. 오랫동안 파일 이름이 올바르면 정상적으로 작동합니다. –
당신은'NULL'에 대한 반환 값을 체크하지 않았습니다! –