私はファイルからテキストを読み込み、バイナリとして出力しています。最初の文字が最初の単語の繰り返しです
- 各大文字は01で始まり、その後に5ビットが続きます。
- 5ビットは、文字の値を保持するものとする。 HI->(0101001)(0101010)
:
- 文字が-2などの値、B-3、C-4、D-5 ...たとえば
を有するであろう次のように私のコードスニペットは、次のとおりです。
void printinbits(int n)
{
for (int c = 4; c >= 0; c--)
{
long int k = n >> c;
if (k & 1)
printf("1");
else
printf("0");
}
}
int main()
{
//first letter is being repeated
char check[200];
FILE*fin= fopen("/Users/priya/Desktop/test.txt.rtf","r");
while((fscanf(fin,"%199s",check))==1)
{
for(int i=0;i<strlen(check);++i)
{
if(check[i]>=65&&check[i]<=90)
{
printf("01");
int n=check[i];
n-=63;
printinbits(n);
}
}
}
return 0;
}
マイ入力 - >
HELLO
私の出力 - >
(0101001)(0101001)(0100110)(0101101)(0101101)(0110000)
(あなたが見ることができるように、最初の文字のHが繰り返されている)(様々な文字は括弧で区切られます)
提案:出力に何らかの区切り文字を追加してください。それ以外の場合は、読んで理解しにくいです。 –
@SouravGhosh done。 –
ロジックは文字を数字に変換し、それを「01」に追加するだけですか?文字が 'C'で、数値が' 3'( 'A'からの変位)でバイナリに変換されているとしますか? –