2 u013238282 u013238282 于 2014.04.11 23:38 提问

C语言写使用fprintf和fscanf的问题

我这个程序是用C语言写的,其中构造了两个函数来将我输入的数据保存到文本文件当中,可是调用savefile函数保存数据到文件中,再调用readfile函数时所输入的数据都没了,说明一下,我做的这个是通讯录管理系统,这两个函数的代码如下,求大神帮我解答,在此本人先谢过了

void readfile()

{
char *p="Linkman.txt";
FILE *fp;
int i=0;
if ((fp=fopen("Linkman.txt","r"))==NULL)
{

printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s %s %d %s %s %s %s %d/%d/%d %s",man_table[i].name,man_table[i].sex,&man_table[i].telnumber,man_table[i].mobilenumber,man_table[i].qqnumber,man_table[i].mailbox,man_table[i].address,&man_table[i].birthday.year,&man_table[i].birthday.month,&man_table[i].birthday.day,man_table[i].level)==9)
{
i++; i=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}

void savefile()

{
int i;
FILE fp;
fp=fopen("Linkman.txt","w"); /
写入*/
for(i=0;i<n;i++)
{
fprintf(fp,"%s %s %d %s %s %s %s %d/%d/%d %c",man_table[i].name,man_table[i].sex,man_table[i].telnumber,man_table[i].mobilenumber,man_table[i].qqnumber,man_table[i].mailbox,man_table[i].address,man_table[i].birthday.year,man_table[i].birthday.month,man_table[i].birthday.day,man_table[i].level);
}
fclose(fp);
}

1个回答

zlp1992
zlp1992   2014.04.13 21:09

savefile函数中应该是FILE*fp ,另外那个fopen中的w是指如果原来已经存在一个与打开文件同名的文件,则在打开文件时将该文件删除,重新建立一个,用a+吧,追加,你试下有没有用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!