用visualc++形式读取文件的行为不同于在c程序中读取
Reading file with visual c++ form behaves differently than reading in C program
我正在用visual 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;
}
缺少while循环?这样你就可以确保你正确地到达文件的末尾
相关文章:
- 在C++中,我如何接受不同于同一行的用户输入
- 从 cin 读取不会返回整个输入字符串
- int lastIndex[NO_OF_CHARS]={-1} 如何;不同于 vector<int> lastIndex(NO_OF_CHARS, -1);?
- 不同于按值传递和常量引用传递的程序集
- 在 C++ 的自定义运算符中删除与删除[](不同于常见的删除与删除[]问题)
- sizeof(enum) 可以不同于 sizeof(std::underlying_type<Enum>::
- 结构C++ – 从文件中读取不正确
- 使用 "()" 调用构造函数不同于"{}"
- 循环的C 范围不同于常规循环
- 功能模板与Variadic模板过载:Intel C 编译器版本18产生的结果不同于其他编译器.英特尔是错误的
- 以不同于其声明形式的形式定义类
- 在不同于依赖DLL的文件夹中输出已编译目标的正确方法是什么
- 编译器如何以不同于常规函数的方式处理 lambda?
- 写入 ofstream,然后使用 ifstream 读取不会读取整个文件
- 是否允许标准库实施具有不同于C 标准的类定义
- USB串行虚拟COM端口:读取不工作,但写入工作
- 没有可调用的匹配函数(构造函数),候选函数不同于对给定类型的引用
- 从文本文件中读取不起作用C
- 用visualc++形式读取文件的行为不同于在c程序中读取
- C++/QT - 通过QByteArray将数据转换为不同的格式不同于读取结构