麻烦大家看看这一小段c语言文件操作程序的错误点

[复制链接]
查看11 | 回复1 | 2008-12-13 20:00:00 | 显示全部楼层 |阅读模式
char* fr(FILE *f,int size) //文件读取函数
{

int counter;

char ch,*ret;

for(counter=0;counter<size;counter++) //循环读取size个字符

{

ch=fgetc(f);

if(ch!=EOF)

{

ret[counter]=ch;

}

else

{

break;

}

}

return ret;
}
main函数里面写上
puts(fr(f,100));
我已经可以确保文件指针f没有问题且文件内有大于200字节的内容,但是上述函数无法输出正常结果,请大家帮忙看看
谢谢大家

回复

使用道具 举报

千问 | 2008-12-13 20:00:00 | 显示全部楼层
ret只是一个指针,没有分配储存空间。 char ch,*ret; 改成char ch,*ret = (char*)malloc(size+1);返回前最好在末尾加上字符串结束标志0,所以多分配一个位置。修改结果应该是char* fr(FILE *f,int size){ int counter; char ch,*ret = (char*)malloc(size+1); for(counter=0;counter<size;counter++) //循环读取size个字符 { ch=fgetc(f); if(ch!=EOF) { ret[counter]=ch; } else { b...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行