나는 다음과 같은 구조체가 :와 C
int file_read(record_list *list, record* rec)
{
/* irrelevant code eliminated */
while(fread(&records, sizeof(record), 1, fp))
{
*rec = records;
valid_list_insert = list_insert(list, rec);
if(!valid_list_insert)
{
return 0;
}
}
}
:
typedef struct {
char last[NAMESIZE];
char first[NAMESIZE];
} name;
typedef struct {
int id;
name name;
float score;
} record;
typedef struct {
record *data;
size_t nalloc;
size_t nused;
} record_list;
나는이 기능을 사용하여 파일에서 레코드를 읽으려고하고있다
과 내가이 기능을 사용하여 파일에 record_list을 쓰기 위해 노력하고 있어요 그러나
int file_write(record_list* list)
{
/* irrelevant code eliminated */
if(fwrite(&list, sizeof(record_list), 1, fp) == 0)
{
return 0;
}
}
을, 그들 중 어느 쪽 correctl 작업 와이. fread는 내 프로그램에 record_list를 표시하려고 할 때 무작위로 데이터를 읽습니다. 그리고 fwrite는 임의의 문자를 파일에 씁니다. 왜 이것이 작동하지 않는지에 대한 도움은 크게 감사 할 것입니다. (1)이 (일부 지점의 즉, 숫자 값을 포인터의 값을 쓰기 때문에 : 하지 작업합니다 (record_list
의 data
멤버로) 포인터를 쓰는 것
'fread' /'fwrite'와 관련하여 문제가 있다고 생각되는 경우 가장 먼저 할 일은 관련성이없는 모든 코드를 제거하고 삶을 편하게하고 다른 사람이 쉽게 대답하도록하는 것입니다. 따라서 사용자 입력을 구문 분석하는 모든 작업을 제거하십시오! –
'gdb'를 친구로 만듭니다. 일생 동안 계속해서 얻을 수있는 일회성 투자 (학습 곡선)! – hari