2012-10-11 89 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個字符,你已經建立 等一個

的部分相同的方法,但在相反的。 您應該小心閱讀/寫入偶數/奇數位的順序