输入(input.txt)
二进制数字
输出(output.txt)
对应文字列
例如
输入
010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001
输出
Hello World!
希望参照以下代码
输入(input.txt)
二进制数字
输出(output.txt)
对应文字列
例如
输入
010010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001
输出
Hello World!
希望参照以下代码
供参考:
#include <stdio.h>
#include <string.h>
void binary2char(FILE* input_file, char message[])
{
char ch;
int i = 0, k = 0 , n = 0;
while ((ch = fgetc(input_file)) != EOF)
{
i++;
if (i % 8 == 0)
{
n = n * 2 + (ch - '0');
message[k++] = n;
n = 0;
}
else {
n = n * 2 + (ch - '0');
}
}
message[k] = '\0';
}
int main()
{
const char* input_file_name = "input.txt";
const char* output_file_name = "output.txt";
FILE* input_file = fopen(input_file_name, "r");
FILE* output_file = fopen(output_file_name, "w");
if (input_file == NULL)
{
printf("Error opening file %s\n", input_file_name);
return 1;
}
if (output_file == NULL)
{
printf("Error opening file %s\n", output_file_name);
return 1;
}
char message[100] = { 0 };
binary2char(input_file, message);
fprintf(output_file, "%s", message);
fclose(input_file);
fclose(output_file);
return 0;
}