还是那个 C语言文件输入的问题
写了个小程序,目的是:输入学号,姓名,性别.然后把它们写入“数据.txt”这个文件里面,
可是每次打开这个程序再输入数据时,以前写的数据都被清空了,
这是怎么回事?
要怎么改改才可以每次打开程序都不把以前写的数据清除掉,而是接着以前的数据写?
#include <stdio.h>#include <malloc.h>#include <string.h>#include <stdlib.h>struct goo { int Student_number; char name[20]; char sex[10]; }; typedef struct node { struct goo data; struct node *link; }linklist,Node; void add(linklist*,FILE*); void main(){ FILE *fp; linklist *head; int i,n; if((fp=fopen("数据.txt","w+"))==NULL) { printf("Cannot open!"); exit(1); } fprintf(fp,"学号\t\t\t姓名\t\t\t性别\n"); fprintf(fp,"-------------------------------------------\n"); head=(linklist*)malloc(sizeof(linklist)); head->link=NULL; printf("请输入要输入的记录的条数:"); scanf("%d",&n); for(i=1;i<=n;i++) add(head,fp); printf("\n"); fclose(fp);}void add(linklist* head,FILE *fp){ Node *p,*q; int sn; char n[20],s[10]; p=head; // while(p->link!=NULL) { p=p->link; } q=(Node*)malloc(sizeof(Node)); printf("请输入学号:"); scanf("%d",&sn); q->data.Student_number=sn; fprintf(fp,"%d\t\t",q->data.Student_number); printf("请输入姓名:"); scanf("%s",&n); strcpy(q->data.name,n); fprintf(fp,"%s\t\t",q->data.name);//字符串是不可以直接复制的,要通过<string.h>下的函数 printf("请输入性别:"); scanf("%s",&s); strcpy(q->data.sex,s); fprintf(fp,"%s\n",q->data.sex); q->link=p->link; p->link=q;}