2012-10-11 90 views
0

如何将文本文件逐个分割为两个其他文件。我需要B.在文件中的所有偶数位,所有奇数的人。换句话说,如果文件X是:如何将文本文件逐位分割为两个文件

然后文件将是:00001100 和B是:11111100

然后我需要将它们保存为.txt文件。之后,我需要将它们合并到一起再次获得X.

我正在使用c。 我到目前为止的代码如下:在您选择的代码

#include <stdio.h> 

void printchar(unsigned char to_print) 
{ 
    unsigned char mask = 0x80; 
    for(int i = 0; i < 8; ++i) 
    { 
     if((mask & to_print) > 0) 
     { 
      printf("%d", 1); 
     } 
     else 
     { 
      printf("%d", 0); 
     } 
     mask = mask >> 1; 
    } 
    printf("\n"); 
} 

void split(unsigned char * left, unsigned char * right, unsigned char input1, unsigned char input2) 
{ 
    unsigned char mask = 0x80; 
    for(int i = 0; i < 4; ++i) 
    { 
     (*left) |= ((input1 & mask) << i); 
     (*left) |= ((input2 & mask) >> (4-i)); 

     mask = mask >> 1; 

     (*right) |= ((input1 & mask) << (i+1)); 
     (*right) |= ((input2 & mask) >> (3-i)); 

     mask = mask >> 1; 

    } 
} 

int main (int argc, const char * argv[]) 
{ 
    unsigned char left = 0; 
    unsigned char right = 0; 
    unsigned char input1 = 0xA6; 
    unsigned char input2 = 0xB5; 

    split(&left, &right, input1, input2); 
    printchar(left); 
    printchar(right); 
    return 0; 
} 
+1

因此,您有那段代码,它有什么问题?它是否编译失败,运行时炸毁,没有抱怨而跑步,但做错了什么......? –

回答

0

读取字符的字符

即使和其他建设两个缓冲字符一个与奇数位 全面建设2个字符,你需要从文件中读取 2个字符,当您已经阅读从输入文件4个字符,你可以写2个字符,你已经建立 等一个

的部分相同的方法,但在相反的。 您应该小心阅读/写入偶数/奇数位的顺序