fwrite(&stud,sizeof(struct stu),1,fp)!=1怎么改为十进制输入
时间: 2023-08-29 10:07:56 浏览: 92
为什么fread(),fwrite()的返回值总是为0,但是读写文件正常
5星 · 资源好评率100%
如果你想要改为十进制输入,可以使用scanf函数来读取十进制数值,并将读取的值存储到结构体成员中。下面是一份示例代码,它读取一个学生的信息,将其存储到结构体变量中,并将结构体变量写入文件中:
```c
#include <stdio.h>
struct stu {
int id;
char name[20];
int age;
};
int main() {
FILE *fp;
struct stu stud;
fp = fopen("student.bin", "wb");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
printf("Enter student ID: ");
scanf("%d", &stud.id);
printf("Enter student name: ");
scanf("%s", stud.name);
printf("Enter student age: ");
scanf("%d", &stud.age);
if (fwrite(&stud, sizeof(struct stu), 1, fp) != 1) {
printf("Failed to write to file.\n");
fclose(fp);
return 1;
}
fclose(fp);
return 0;
}
```
这个程序会提示用户输入一个学生的信息,并将该信息写入文件中。在这个程序中,我们使用了scanf函数来读取十进制数值,并将其存储到结构体成员中。
阅读全文