Я пытаюсь прочитать из файла. Я использую fread(), но я не уверен, правильно ли я это сделаю. Я хочу, чтобы создать массив структур и продолжить «F-чтение» из файла в массив следующим образом:Чтение из файла в массив
//Get size of file
struct stat st;
stat(document, &st);
int size = st.st_size;
//Create appropriate array size of structs
struct Person person[size];
for(j = 0; j < size; j++) {
fread(person[j].name, 1, 16, fp); //each name is truncated to 15 bytes on the file
fread(person[j].text, 1, 24, fp); //text is truncated to 24 on the file
}
структура Person выглядеть так:
struct Person {
char name[16];
char text[24];
};
Могу ли я с помощью Fread() правильно? Спасибо.
Спасибо за совет. Попробовав ваше предложение, я получаю сообщение об ошибке «Ошибка чтения записи имени» ... Я считаю, что это для последнего fread(), когда читать нечего. Я прав? Как я могу это исправить? – user1889966
fread() может быть несколько ... хрупким ... при анализе файла данных таким образом. Вы можете использовать fgets() для получения строки за раз, а затем разбор строки, возможно, с помощью sscanf(). –