ファイルをオープンするときのエラー
C言語であるファイルにある数値を100ごとに合計して,ほかのファイルに書き出す。しかし,実行するとエラーでてきます。原因はわからないです。因みに,オープンしたいファイルをほかのディレクリに置いたら,ファイルが見付かりませんとのエラーがありました、WindowsのC言語でカレントディレクトリを探すときは何の関数を使えばいいでしょうか?
int main(void)
{
int i,k;
int num;
char filename[64],fileread[64],filewrite[64];
FILE *fp0,*fp1;
double sum1,sum2,sum3;
int *ch[3];
sum1=sum2=sum3=0.0;
printf("ファイル名を入力ください!\n");
scanf("%s",filename);
fprintf(stderr,"\n%s\n",filename);
sprintf(fileread,"C:\\%s.txt",filename);
fprintf(stderr,"%s\n",fileread);
sprintf(filewrite,"C:\\%s.csv",filename);
for (i=0;i<3;i++)
{
if ( (ch[i]=(int *)malloc(4*30))==NULL )
{
fprintf(stderr,"Cannot get memory <ch[%d]>.",i);
return -1;
}
}
fprintf(stderr,"%s\n",filewrite);
if ((fp0=fopen(fileread,"rb"))==NULL)
{
fprintf(stderr,"Cannot open file %s\n",fileread);
return 0;
}
fscanf(fp0,"%d", &num);
if((fp1=fopen(filewrite,"wb"))==NULL)
{
fprintf(stderr,"Cannot open file!%s\n",filewrite);
return 0;
}
for(i=0;i<50;i++)
{
fscanf(fp0,"%d %d %d",*(ch[0]),*(ch[1]),*(ch[2]));
}
for(i=0;i<num/100;i++)
{
for (k=0;k<100;k++)
{
fscanf(fp0,"%d %d %d",*(ch[0]),*(ch[1]),*(ch[2]));
if ( feof(fp0) != 0 ) break;
sum1=sum1+*(ch[0]);
sum2=sum2+*(ch[1]);
sum3=sum3+*(ch[2]);
}
fprintf(fp1,"%d %d %d\n",sum1,sum2,sum3);
}
fclose(fp0);
fclose(fp1);
return 0;
}
お礼
ありがとうございました。 勉強になりました。