首页 > 解决方案 > 程序在 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() 行时,程序结束。我不明白。你能帮帮我吗?

标签: cfilebinaryfseek

解决方案


推荐阅读