2016-03-21 80 views
0

我從二進制文件中存儲有用的數據,我需要將其添加到結構中,直到出現垃圾數據(當第一個垃圾位出現時,我停止將數據加載到結構中)。我需要將這些垃圾數據從文件(我不存儲到結構中)寫入(複製)到另一個文件。我該怎麼辦,沒有分配的垃圾數據和複製陣中還有使用f1 . read (junkArray, junkLen)然後:將垃圾數據寫入二進制文件

file . write (junkArray , junkLen) ; 

我想這樣做

file . write (f1 , junkLen); 

其中,f1是文件在positition那裏垃圾數據開始。

+0

看該方法seekg – Soren

+1

如果C++標記是準確的,流應該使用C文件結構的 – Serge

回答

0

網站cplusplus對如何尋求,readwrite在特定位置的文件這個典型的例子 - 解讀就是這個樣子

// read a file into memory 
#include <iostream>  // std::cout 
#include <fstream>  // std::ifstream 

int main() { 
    std::ifstream is ("test.txt", std::ifstream::binary); 
    if (is) { 
    // get length of file: 
    is.seekg (0, is.end); 
    int length = is.tellg(); 
    is.seekg (0, is.beg); 

    // allocate memory: 
    char * buffer = new char [length]; 

    // read data as a block: 
    is.read (buffer,length); 

    is.close(); 

    // print content: 
    std::cout.write (buffer,length); 

    delete[] buffer; 
    } 

    return 0; 
} 

只是你真正想要的位置替換seekg參數讀/寫。

書寫,着眼於seekp