C语言 fopen函数 读取文件出错 怎么回事
我的代码是:FILE*in,*out;charfname[250]={""};charnamein[]={"dwell.dat"};printf("Pleaseinput...
我的代码是:
FILE *in,*out;
char fname[250]={""};
char namein[]={"dwell.dat"};
printf("Please input file name:");
gets(fname);
strcat(fname,namein);
in=fopen(fname,"r");
每次in的返回值都是NULL,如果我把char namein[]={"dwell.dat"};改成 char namein[]={".dat"};就可以了,这是什么原因,我的原文件名是9 tr6dwell.dat,是文件名的长度问题么?顺便问一下,如果想批量处理某个文件夹下以dat后缀的文件怎么弄? 展开
FILE *in,*out;
char fname[250]={""};
char namein[]={"dwell.dat"};
printf("Please input file name:");
gets(fname);
strcat(fname,namein);
in=fopen(fname,"r");
每次in的返回值都是NULL,如果我把char namein[]={"dwell.dat"};改成 char namein[]={".dat"};就可以了,这是什么原因,我的原文件名是9 tr6dwell.dat,是文件名的长度问题么?顺便问一下,如果想批量处理某个文件夹下以dat后缀的文件怎么弄? 展开
展开全部
思路没有错。估计是文件名长度问题。如果你用的是早期的编译平台,文件主名不得长于8个字符,扩展名不得多于3个字符。批处理用*.dat就行啊……
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该像下面这样子初始化字符串 :
char fname[ 250 ] = { 0 };
char namein[ ] = "dwell.dat";
最近 C 标准库已经引入了安全版本的函数,出于代码的稳定性,应该这样子写 :
FILE * in = NULL;
FILE * out = NULL;
fopen_s( & in, fname, "r" );
if( NULL != in )
{
// TODO : 在此处添加你的文件操作代码 ...
fclose( in );
in = NULL;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char namein[]={".dat"};
gets(fname); //输入dwell
strcat(fname,namein);
in=fopen(fname,"r"); //打开dwell.dat
如果想批量处理的话可以
把文件命名为1.dat、2.dat、3.dat等等有规律的文件名,用一个循环逐个打开
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-14
展开全部
这是什么状况 什么都看不到 怎么回答呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询