c - 程序在 C 中结束 fseek()
问题描述
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
struct student
{
int stuNum;
int point;
};
int newStudent(FILE* dataf, FILE* indexf);
int main(void)
{
FILE* datafile;
FILE* indexfile;
indexfile = fopen("indexDosyasi.txt", "a+");
datafile = fopen("veriDosyasi.bin", "wb+");
newStudent(datafile, indexfile);
fclose(datafile);
fclose(indexfile);
return 0;
}
int newStudent(FILE* dataf, FILE* indexf)
{
dataf = fopen("datafile.bin", "a+"); // binary file
if (dataf == NULL)
{
printf("error");
return -1;
}
struct student* last = (struct student*)malloc(sizeof(struct student));
printf("number of student \n");
scanf("%d",last->stuNum);
fprintf(indexf, "%d\t", last->stuNum);
fwrite(last, sizeof(struct student), 1, dataf);
long *offset;
*offset=fseek(dataf,0,SEEK_CUR);
printf("%ld",*offset);
return 0;
}
嗨,我想将学生的信息保存到二进制文件中,并获取该行在文件中的位置。程序以 *offset=fseek(dataf,0,SEEK_CUR); 结束 ,我在程序的不同位置使用 fseek() 但每次当我得到 fseek() 行时,程序结束。我不明白。你能帮帮我吗?