c编程打开文件时遇到很诡异的问题,求帮忙
我用vs2008编程,需要依次打开一系列文件读取里面的数据,然后关闭文件,文件名就是从1到5000的数字命名,无后缀名。
我遇到的问题不管从哪个文件开始读取每次读到第509个文件后都显示找不到该文件,比如从1开始读,读到第509个就显示找不到该文件,从2开始那就到510个找不到,我查看文件地址也是对的,但就是显示找不到,求各路大神帮助啊!
for (i=msg_from;i<=msg_to;i++)
{
itoa(i,num,10);
for (n=0;num[n]!='\0';n++);//计算num的长度
address=(char*)malloc(n*sizeof(char)+1);
strcpy(address,num);
if((fid=fopen(address,"rt"))==NULL)
{
cout<<"can't open this file(2)"<<endl;
return 0;
};
free(address);
}
[解决办法]
fopen 后处理完加个fclose
[解决办法]
gcc4.2测试没问题,楼主的情况肯定是文件不在
- C/C++ code
int main(){ char num[32]; int n; for (int i=1; i<= 510;i++) { sprintf(num, "%d", i); for (n=0;num[n]!='\0';n++) ;//计算num的长度 char *address=(char*)malloc(n*sizeof(char)+1); strcpy(address,num); FILE *fid; if((fid=fopen(address,"rt"))==NULL) { cout<<"can't open this file " << i <<endl; perror("open file failed"); free(address); return 0; } fclose(fid); free(address); } return 0;}