我想將每個字節放入一個字符數組中,並重寫該文本文件以除去前100,000個字符。打開超過5 MB的文件並將它們存儲在一個數組中
int fs=0;
ifstream nm,nm1;
nm1.open("C:\\Dev-Cpp\\DCS\\Decom\\a.txt");
if(nm1.is_open())
{
nm1.seekg(0, ios::end);
fs = nm1.tellg();
}
nm1.close();
char ss[500000];
nm.open("C:\\Dev-Cpp\\DCS\\Decom\\a.txt");
nm.read(ss,fs-1);
nm.close();
ofstream om;
om.open("C:\\Dev-Cpp\\DCS\\Decom\\a.txt");
for(int i=100000;i<fs-1;i++){
om >> ss[i];
}
om.close();
問題是我無法將字符數組設置爲500萬大小。我試着用向量也
vector <char> ss (5000000);
int w=0;
ifstream in2("C:\\Dev-Cpp\\DCS\\Decom\\a.txt", ios::binary);
unsigned char c2;
while(in2.read((char *)&c2, 1))
{
in2 >> ss[w];
w++;
}
在這裏W的大小几乎是FS的一半,和很多人物的缺失。
怎麼辦?
謝謝,我用過char * ss = new char [5000000];如你所建議並刪除[] ss;在程序結束時,它現在工作正常,但我沒有堆和堆棧的經驗,不知道在哪裏放置size_t代碼(在fstream裏面?) – 2012-01-14 12:13:08
@GambitKing最初你只需要粗略理解[堆vs 。stack](http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap),你可以從五分鐘的閱讀中獲得。我錯了'size_t actualSize' - 請參閱我的編輯。 – dasblinkenlight 2012-01-14 12:24:03
感謝您的信息 – 2012-01-14 12:30:31