满意答案
rkg154
2013.11.11
采纳率:44% 等级:12
已帮助:5619人
2个错误;
错误1:
fscanf(fp,"%d",&n[a]);
因为你前面fprintf(fs,"%d\n",n[a]);加了\n,所以应该改为fscanf(fp,"%d\n",&n[a]);
错误2:
FILE *fp=fopen("c:\\data\\class1.txt","r");
FILE *fs=fopen("c:\\data\\class1.txt","wt");
很多情况下只是打开文件没有关闭文件;
FILE *fp;
FILE *fs;
最好改为在case 2:
fp=fopen("c:\\data\\class1.txt","r");
在case 3 :
fs=fopen("c:\\data\\class1.txt","wt");
下面是我改正好的代码:在WINDOWS下可以执行,结果正确;
#include
#include
int menu();
int main()
{
FILE *fp;
FILE *fs;
int a,n[11]={0};
system("md c:\\data");
begin:
switch(menu())
{
case 1:
for(a=1;a<=10;a++)
{
printf("N[%d]=",a);
scanf("%d",&n[a]);
}
goto begin;
case 2:
fs=fopen("c:\\data\\class1.txt","wt");
for(a=1;a<=10;a++)
fprintf(fs,"%d\n",n[a]);
fclose(fs);
printf("Save successful!\n");
goto
begin;
case 3:
fp=fopen("c:\\data\\class1.txt","r");
for(a=1;a<=10;a++)
fscanf(fp,"%d\n",&n[a]);
printf("Readed it!\n");
goto begin;
case 4:
for(a=1;a<=10;a++)
printf("N[%d]=%d\n",a,n[a]);
getch();
goto begin;
case 0:
printf("See you!");
//sleep(1);
}
return 0;
}
int menu()
{
int a=-1;
begin:
system("cls");
printf("************************\n");
printf(" 1. add\n");
printf(" 2. save\n");
printf(" 3. rede\n");
printf(" 4. show\n");
printf(" 0. quit\n");
printf("************************\n");
printf("Enter your choice:");
scanf("%d",&a);
if(a>4||a<0)
{
printf("Input erro!\n");
//sleep(1);
goto begin;
}
return
a;
}
00分享举报