相关疑难解决方法(0)

在中间读取并复制带有EOF指示的文件

我使用下面的代码从一个二进制文件复制到另一个,但第一个文件包含一些EOF指示符(0xFF)作为其一部分,因此复制功能实际上复制文件直到它的第一个EOF指示符.

例如:如果我的文件{0x01, 0x02, 0x03, 0xFF, 0x01, 0x02, 0xFF, 0xFF}只是{0x01, 0x02, 0x03}将被复制到新文件.任何想法如何解决它(或者我可能在那里遗漏了一些......)

码:

int Util_Copy_File(char* source, char* dest)
{
    FILE *fs,*ft;  
    char ch;
    char infile[100];
    sprintf(infile, "%s", dest);
    fs = fopen(infile,"r");  
    if(fs==NULL)  
    {
        return -1;  
    }
    ft = fopen(dest,"w");  
    if(ft==NULL)  
    {  
    fclose(fs);  
    return STATUS_FAIL;
    }  

    while(1)  
    {  
    ch = getc(fs);  
    if(ch==EOF)  
    {  
        break;  
    }  
    else  
        putc(ch,ft);  
    } 
    fclose(fs);  
    fclose(ft);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢,Binyamin

c c++ file-io eof

0
推荐指数
1
解决办法
1599
查看次数

标签 统计

c ×1

c++ ×1

eof ×1

file-io ×1