2016-03-21 125 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