#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main()
{
FILE *pf=NULL; //文件指针
int filelen=0;
int i=0,num=0;
char *buf;
pf=fopen("D:/Dev-Cpp/liuzf/LiuTest/db2look.sql","r"); //以只读方式打开文件
if(pf==NULL)
{
return 0;
}
else
{
//获得文件长度
fseek(pf,0,SEEK_END); //文件指针移到末尾
filelen=ftell(pf); //获得文件当前指针位置,即为文件长度
rewind(pf); //将文件指针移到开头,准备读取
buf=(char*)malloc(filelen+1+30320); //新建缓冲区,存储独处的数据
//将缓冲区的数据设置为0
//for(i=0;i<filelen+1;i++)
// buf[i]=0;
memset( buf, '\0', filelen+1+30320 );
//读取文件
num=fread(buf,1,filelen+1+30320,pf);
perror("ffff");
if(feof(pf)) printf("feof\n");
printf("ferror=%d\n",ferror(pf));
//关闭文件
fclose(pf);
//buf中即为要读出的数据
printf("%s\n",buf); //输出一下数据,你可以随便怎么用
printf("------------%d\n",num);
/*
while(*buf != NULL)
{
printf("%d--%c\n",*buf,*buf);
buf++;
}
*/
memset( buf, '\0', filelen+1+30320 );
free(buf); //最后记得要释放
}
system("PAUSE");
return 1;
}
文件内容:
-- No userid was specified, db2look tries to use Environment variable USER
CONNECT TO QHBIDB;
输出内容:
ffff: No error
feof
ferror=0
-- No userid was specified, db2look tries to use Environment variable USER
CONNECT TO QHBIDB;
;
------------97
请按任意键继续. . .
环境win7 32位,编译工具vs2008、cfree、devc++,均有此问题,但是把其中的30320替换为3032就可以正常显示