关于网友提出的“ 函数调用出错”问题疑问,本网通过在网上对“ 函数调用出错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 函数调用出错
描述: 想请各位高手帮我看下这段代码
/* 读取文本文件中的记录总数,一行一条记录 */
/**************************************
pfilename : 文件名
fsize : 单行记录的长度
***************************************/
long ReadCount(const char *pfilename , int fsize)
{
FILE *fp;
long flen,fcount;
if((fp = fopen( pfilename , "r")) == NULL)
{
fclose(fp);
return (0) ;
}
else
{
flen = get_file_bit( pfilename ); //获取文件字节长度;
fcount = (flen/fsize); //得到记录数
fclose(fp);
return (fcount);
}
}
我在调用的的代码是:
count = ReadCount(dtfile02,12);
if(count == 0)
{
lcd_cls();
Sound(3);
Display(3,0,(UB *)"请下载单据!",0);
Display(5,0,(UB *)dtfile02,0);
Display(9,0,(UB *)"按任意键返回",0);
getkey();
return;
}
文件名dtfile02定义为:
const char dtfile02 = "Recy_ini.txt";
程序运行后总是为0,检查了半天,觉得代码实在是没问题,所以请大家帮我看下
解决方案1: Recy_ini.txt存在?
fcount = (flen/fsize); 得到的一定是整数?
第一个fclose(fp);没有必要。
解决方案2: 这样:
long ReadCount(const char *pfilename , int fsize)
{
//FILE *fp;
//long flen,fcount;
//if((fp = fopen( pfilename , "r")) == NULL)
//{
// fclose(fp);
return (0) ;
//}
//else
//{
// flen = get_file_bit( pfilename ); //获取文件字节长度;
// fcount = (flen/fsize); //得到记录数
// fclose(fp);
// return (fcount);
//}
}
int main()
{
const char *dtfile02 = "a.jpg";
int count = ReadCount(dtfile02,12);
return 0;
}
你的文件名定义有问题,用指针
解决方案3: 1.
const char dtfile02 = "Recy_ini.txt";
是
const char* dtfile02 = "Recy_ini.txt";
2.
在 return (0) ;
处设断点检查是不是文件无法打开.
以上介绍了“ 函数调用出错”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2921245.html