一个简单的C语言程序,可是我不会改
那个麻烦大家了源程序:
#include <stdio.h>
#include <math.h>
#include <string.h>
int main ()
{FILE *fp;
char ch;
char A[10]={0};
char B[10]={0};
char C[10]={0};
int i=0;
int k=0;
int j=0;
fp=fopen("C:\\Users\\study\\20.TXT","r");
if(fp==NULL)
printf("error");
else
printf("ok");
while(!feof(fp))
{ switch(k){
case 0:while((ch=fgetc(fp))!=',')
{
A[i]=ch;
i=i+1;
printf("%c",A[i-1]);}
A[i]='\0';
printf("\n");
k=1;
i=0;
break;
case 1:while((ch=fgetc(fp))!=',')
{if(ch==EOF){break;}
B[i]=ch;
i=i+1;
printf("%c",B[i-1]);}
B[i]=0;
printf("\n");
k=2;
i=0;
break;
case 2:while((ch=fgetc(fp))!='\n');
k=3;
break;
case 3:while((ch=fgetc(fp))!=',')
{
C[i]=ch;
i=i+1;
printf("%c",C[i-1]);
}
printf("\n");
C[i]=0;
k=4;
i=0;
break;
case 4:for(;C[i]!=0;i++)
{
A[i]=C[i];
printf("%c",A[i]);}
i++;
A[i]=0;
k=1;
i=0;
printf("\n");
break;}
}
printf("结束\n");
while(1);
return 1;
}
20.TXT 是这样的文本
0000028C,24,モンスターの スタミナを
000002A5,28,1 かいふくする ビスケット
000002C2,24,モンスターの スタミナを
000002DB,28,2 かいふくする ビスケット
000002F8,24,モンスターの スタミナを
00000311,26,いっぱいにする ビスケット
不过很长........
在运行后出现这样的提示:
“123.exe 中的 0xffffffff 处未处理的异常: 0xC0000005: 读取位置 0xffffffff 时发生访问冲突”
我曾经尝试过把
case 2:while((ch=fgetc(fp))!='\n');
k=3;
break;
改成
case 2:while((ch=fgetc(fp))!='\n'&&ch!=EOF);
k=3;
break;
结果没有任何改观,而且许多的输出变成了乱码,
麻烦大家帮我看一下哪里错了,谢谢了!
20.rar
(4.05 KB)
附件是文本