void yjsxxbaoc(LinkListyj yjhead) //研究生信息保存 { FILE *fp; fp=fopen("yjsxxbaoc.txt","w"); LinkListyj p ; p = yjhead->next ; if(fp==NULL) { printf("文件读入失败\n"); exit(0); } while(p) { fprintf(fp,"%s %s %s %s %s %s\n",p->ID,p->name, p->xingb,p->age,p->zyname,p->beiz); p = p->next ; } fclose(fp); }
时间: 2024-02-14 08:24:27 浏览: 7
这段代码实现了将链表中的研究生信息保存到文件中。具体实现方法如下:
首先,代码中使用 `fopen()` 函数创建一个名为 `yjsxxbaoc.txt` 的文件,并以写入模式打开。如果打开失败,则输出提示信息,并调用 `exit()` 函数退出程序。
然后,定义一个指向链表头节点的指针 `p`,从头节点的下一个节点开始遍历整个链表。在遍历过程中,使用 `fprintf()` 函数将每个节点的信息按照一定的格式写入到文件中。写入的信息包括:学号、研究生姓名、性别、身份出生日期、专业名称和备注。
最后,使用 `fclose()` 函数关闭文件。
这段代码的作用是将链表中的研究生信息保存到一个文件中,方便后续的读取和处理。
相关问题
修改以下代码“”“#include<stdio.h> #define N 5 typedef struct student{ long sno; char name[10]; float score[3]; }STU; void fun(char *filename,STU n){ FILE *fp; /**********found**********/ fp=fopen(filename,"rb"); /*********”
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n) {
FILE *fp;
fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Cannot open file!\n");
return;
}
fread(&n, sizeof(STU), 1, fp);
printf("sno:%ld\nname:%s\nscore[0]:%.2f\nscore[1]:%.2f\nscore[2]:%.2f\n", n.sno, n.name, n.score[0], n.score[1], n.score[2]);
fclose(fp);
}
int main() {
STU s[N] = {
{20210001, "Tom", {89, 78, 92}},
{20210002, "Jerry", {78, 87, 91}},
{20210003, "Mickey", {90, 77, 83}},
{20210004, "Minnie", {94, 92, 90}},
{20210005, "Donald", {85, 88, 82}}
};
FILE *fp;
fp = fopen("test.dat", "wb");
if (fp == NULL) {
printf("Cannot open file!\n");
return 0;
}
fwrite(&s[2], sizeof(STU), 1, fp);
fclose(fp);
fun("test.dat", s[2]);
return 0;
}
```
#include <stdio.h> int main(void){ int x=1;char y="W; FILE *fp; fp=fopen("File.dat","w");fprintf(fp,"%d,%c",x,y);return 0; }/"End of main()*/
您的代码有一些错误。首先,在`char y`的赋值处,您需要用单引号(')而不是双引号(")来表示字符。此外,在文件操作中,您应该在使用完文件后关闭它。下面是修改后的代码:
```c
#include <stdio.h>
int main(void) {
int x = 1;
char y = 'W';
FILE *fp;
fp = fopen("File.dat", "w");
fprintf(fp, "%d,%c", x, y);
fclose(fp);
return 0;
}
```
这个程序将在当前目录下创建一个名为`File.dat`的文件,并将`1,W`写入该文件中。然后,程序会关闭该文件并返回0。请注意,在写入文件之前,确保当前工作目录具有写入权限。