我有一个问题,我不知道如何解决它。 的问题是:C++垃圾在文件末尾
char * ary = new Char[];
ifstream fle;
fle.open(1.txt, ios_base::binary);
fle.seekg(fle.end);
long count = fle.tellg();
fle.seek(fle.beg);
现在的问题是: 文件1.txt的包含:你好世界!
当我执行:
ary = new char(count);
fle.read(ary, count);
充满这样的进制:世界,你好! @T#^ @ $ @ FF(垃圾)
该文件在ookay里面没有任何东西,只有上面的内容。
平台:Win 7,VS 2012
不知道如何来解决这个问题。 (已解决)
(问题2) 现在我面临另一个问题,fle.read有时阅读比我给的尺寸更多。例如,如果我通过像fle.read(缓冲,1000),它在某些情况下结束(strlen的(缓冲)= 1500。我怎样才能解决这个问题?
问候,
它不是在文件中,这是您的分配内存的一部分。在做任何事之前尝试将数组置空。即'ary = new char(count); memset(ary,0,count); fle.read(ary,count);',对于memset,如果你还没有它,你还需要'#include'。 –
bizzehdee
为什么你打开二进制文件? – crashmstr
并且count中有一个“o”。 – crashmstr