第1个回答 2017-12-23
#include
#include
#define NEW (TX *)malloc(sizeof(TX))
typedef struct tongxunlu //定义的一个通讯录的结构体
{
char number[10]; //号码
char name[20]; //姓名
int old; //年龄
char address[20]; //地址
char phone[12]; //电话
struct tongxunlu *next;//链表
}TX;
int main ()
{
FILE *fp; // 文件指针fp
TX *p;
int i,n; // i,n控制循环
if((fp = fopen("学生信息.txt","w")) == NULL ) // 打开文件
{
printf(" 人品 不够!!启动失败!!!\n");
exit(0);
}
printf("输入人数:"); // 键盘输入人数n
scanf("%d",&n);
fprintf(fp,"%d",n); // 将人数n写入文件
fprintf(fp,"\n");
p = NEW; // 开辟一个新内存,并让指针p指向它
printf(" 输入档案号、姓名、年龄、籍贯、联系电话\n");
for(i = 0; n > i ; i++) // 反复用同一个节点进行n次循环
{
scanf("%s",&p -> number); // 键盘将数据写入该节点
scanf("%s",&p -> name);
scanf("%d",&p -> old);
scanf("%s",&p -> address);
scanf("%s",&p -> phone);
fprintf(fp,"%s ",p -> number); // 将该节点内的数据写入文件
fprintf(fp,"%s ",p -> name);
fprintf(fp,"%d ",p -> old);
fprintf(fp,"%s ",p -> address);
fprintf(fp,"%s ",p -> phone);
fprintf(fp,"\n");
}
free(p); // 释放p内存
fclose(fp); // 关闭文件
printf("\n\n数据输入完成\n");
}