char *loadTextFile(const char *filename)
{
FILE *fileh;
char *text = 0;
long filelength;
if((fileh=fopen(filename,"rb"))== 0)
printf("loadTextFile() - could not open file");
else
{
fseek(fileh, 0, SEEK_END);
filelength = ftell(fileh);
rewind(fileh);
text=(char *) smartmalloc((int)filelength + 1);
fread(text,(int)filelength, 1, fileh);
fclose(fileh);
text[filelength]=0;
}
printf(text);
return(text);
}
此函数仅返回 txt 文件的部分数据。这也是不一致的...soemtimes 有时会给我 100 个字符的文件 20。我看不出有什么问题。我想我可能会得到另一双眼睛。谢谢。
最佳答案
要检查的明显事项:
ftell(fileh) 给了你什么?
文件中可以嵌入NUL字符吗?这会导致 printf(text) 过早停止。
关于c - C 的文件 I/O 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1329729/