我在C工作在Linux上,我试图给一个结构写入文件。问题写结构到文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct stud{
char name[20];
char dept[20];
int id;
};
int main()
{
FILE *fptr;
int fwrt;
struct stud s;
printf("enter student name\n");
scanf("%s",s.name);
printf("enter student department\n");
scanf("%s",s.dept);
printf("enter student ID\n");
scanf("%d",&s.id);
fptr = fopen("tiger","wb");
if(fptr == NULL){
perror("error openning file :");
exit(EXIT_FAILURE);
}
fwrt = fwrite(&s,sizeof(struct stud),1,fptr);
if(fwrt == 0){
perror("error writing file :");
exit(EXIT_FAILURE);
}
// fprintf(fptr, "%d", s1->mark);
if(fclose(fptr) == EOF){
perror("error closing file :");
exit(EXIT_FAILURE);
}
}
输出: 当我打开文件来检查我越来越:
- 名,但与其他字符
- 部门但与其他字符
- ID我得到一些垃圾值。
请让我知道解决这个问题的方式。
我不会使用fgets读取使用fwrite输出的结构。这是非常危险的。你应该改回它 –