ファイルをオープンするときのエラー
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;
}
お礼
回答ありがとうございます. フルパスで入れてみましたがだめでした. Rlease,Debugどちらの構成でも無理です.
補足
申し訳ありません. ソリューションディレクトリにファイルがありませんでした. 失礼致しました<(_ _)>