都来帮我看看哪里错了吧!
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<conio.h>
void fun(char *line,char *p,char *q)//读取问题文件中的行,将其中以:为界分开存储
{
while(*line!=':')
{
*p++ = *line++;
}
*p='\0';
*line++;
while(*line)
{
*q++ = *line++;
}
*q = '\0';
}
void main()
{
char line[100],field[30],hou[70];
char ans[100];
FILE *fpq,*fpd;//fpq问题文件,fpd答案文件
char c;
char no[34];
char fname[50];
do
{
fpq = fopen("question.txt","r");
if(!fpq)
{
printf("文件打开失败\n");
exit(0);
}
printf("请输入学号:\n");
scanf("%s",no);
strcpy(fname,no);
strcat(fname,".txt");
fpd = fopen(fname,"w");//将学号作为文件名称建立文件
if(!fpd)
{
printf("文件不存在\n");
exit(0);
}
fputs("学号:",fpd);//将学号写为一行
fputs(no,fpd);
fputs("\n",fpd);
while(fgets(line,100,fpq))//
{
fun(line,field,hou);//依次读取问题,回答存储
printf("%s",hou);
scanf("%s",ans);
fputs(field,fpd);
fputs(":",fpd);
fputs(ans,fpd);
fputs("\n",fpd);
}
fclose(fpq);
fclose(fpd);
printf("是否还要继续?\n");
c = getchar();
}while(c=='y');
}