0

テキストファイルを他の2つのファイルに少しずつ分割するにはどうすればよいですか. ファイル A のすべての偶数ビットと、B のすべての奇数ビットが必要です。つまり、ファイル X が次の場合:

0101010111110000

この場合、ファイル A は 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;
}
4

1 に答える 1

0

文字単位で読み取る

あなたのコードでは、偶数ビットと奇数ビットの2つのバッファ文字を構築して、2文字を完全に構築します。入力ファイルから4文字を読み取ったときに、ファイルから2文字を読み取る必要があります。作成した2文字を書き込むことができます。

一部は同じアプローチですが、逆です。偶数/奇数ビットの読み取り/書き込みの順序に注意する必要があります

于 2012-10-11T20:18:03.927 に答える