我有一個問題,我不知道如何解決它。 的問題是: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