Я использовал fwrite
для хранения некоторых данных, и теперь я пытаюсь использовать fread
для чтения данных из файла txt для обработки. Я хочу читать значения отдельно, но я не могу понять, как вы это сделаете. Это то, что я пробовал:Как я могу использовать 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-ошибку, но ничего не распечатывается. Любая идея, что я могу сделать, чтобы исправить это?
ли некоторые ошибки проверки здесь: 'Pfile = fopen ("myfile.txt", "rb"); ' –
@ πάνταῥεῖ Что wo uld Я проверяю? Это просто открывает файл. До тех пор, пока я получу правильное имя файла, он должен работать нормально. –
Вы никогда не проверяли возвращаемое значение на 'NULL'! –