解决方案可能是微不足道的,但我在 cpp 中并不生动。
在我执行代码后,值function strlen((char*)buffer)
比我想象的要高。这是为什么?我该如何解决?(if filesize=48, than strlen((char*)buffer)=64
它也应该是 48 !)
ifstream iffile;
iffile.open(argv[1], ios::in | ios::binary | ios::ate);
if (iffile.is_open())
{
long filesize = iffile.tellg();
if (filesize > 0)
{
iffile.seekg(0, ios::beg);
{
long pos = iffile.tellg();
if (pos != filesize)
{
char *buffer;
buffer = (char *)malloc(filesize * sizeof * buffer);
if (buffer != NULL)
{
memset(buffer, 0, filesize - pos);
iffile.read((char *)buffer, filesize);
此外,我不得不提到,在我的文件中有很多不可打印的值。