0
我有這個程序,我想讀取每個2 kb的小部分中的數據,然後將其寫入文件,但是當我嘗試做它讀寫我的文件四次。這裏是我的代碼:以固定的數量寫入數據,導致它重新編輯文件C++中的數據
#include<fstream>
#include<iostream>
using namespace std;
ifstream::pos_type size; // use if file is larger than 2 gb
int main()
{
char *memblock=0;
ifstream in("file.txt", ios::in | ios::binary | ios::ate);
ofstream in1("file1.txt", ios::out | ios::binary | ios::ate);
size = in.tellg();
cout << "Size of file "<< size << endl;
float sz= size/2048.0;
int sizechck = ceil(sz);
cout<< "size is "<<sizechck;
if(in.is_open())
{
memblock = new char [2048];
for (j=0;j<=sizechck;j++)
{
in.seekg (j*2048,ios::beg);
in.read (memblock, 2048);
in1.write(memblock,2048);
}
}
system("pause");
return 0;
}
我已經做了一個編輯,如果我刪除「尋求」它只是發送一個數據f到整個文件,沒有任何工作。 – networks 2013-03-21 20:26:29
@networks你是什麼意思的「無」?它會崩潰嗎?給空文件?根本沒有文件? – 2013-03-21 20:33:05
它提供了單個字符,如文件中的「f」,沒有別的,但是如果我使用seekg,它會顯示我file1.txt,但是將兩次從file.txt寫入所有數據。 – networks 2013-03-21 20:34:47