[英]Reading file with visual c++ form behaves differently than reading in C program
我正在使用可视c ++格式构建图形程序。 我正在尝试将文件读取为字符串。 该文件的内容是简单的html代码。
现在,如果我创建一个空白项目并使用以下代码创建一个.c文件:
FILE *f;
int tamanho;
char *asd;
f=fopen("mail.txt","r");
if(f==NULL)
erro("Erro abrir file");
fseek(f,0,SEEK_END);
tamanho=ftell(f);
rewind(f);
asd=(char *)malloc(tamanho+1);
fread(asd,1,tamanho,f);
它将整个复制到字符串。
但是,如果我创建Windows窗体应用程序并编写相同的代码,则它只会复制文件的几行。
fread()不能保证读取您要求的所有内容。
您需要检查返回值以查看实际读取了多少。
您可能需要循环执行此操作,直到您阅读了所有想要的内容。
size_t read = 0;
while(read != tamanho)
{
size_t amount = fread(asd + read,1,tamanho - read,f);
if (amount == 0)
{ // You may want to check for read errors here
}
read += amount;
}
缺少一会儿循环吗? 这样,您可以确保正确到达文件末尾
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.