问题遇到的现象和发生背景
通过fseek()可正确获得文件长度,但fread()到char[]时只得到前三个字节
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<iostream>
using namespace std;
#pragma warning(disable : 4996)
int main() {
FILE* fp;
int size;
fp = fopen("write.exe", "rb+");
fseek(fp, 0, SEEK_END);
size = ftell(fp);
cout << size << endl;
rewind(fp);
char* data = new char[size];
fread(data, size, 1, fp);
int l = strlen(data);
cout << l << endl;;
cout << data << endl;
return 0;
}
运行结果及报错内容
第一行正常输出文件长度size
第二行为data长度
第三行直接打印出data
我的解答思路和尝试过的方法
用ultraedit可以看到读到0x00貌似就停止了
我想要达到的结果
如何完整读取非文本文件内容