对于大学,我可以练习压缩一系列数据。在一个文件中有输入数据,我必须用压缩数据写另一个。任务只是存储数字之间的差异。到目前为止,我已经编写了将数据存储在数组中并将其存储在输出文件中的代码。现在我想从压缩开始,但不知道如何做到这一点。我存储了数据类型吗?
输入文件可能如下所示: C9 CB C7 C0 C0 C8 C9 C9 BE 00 04
因此输出文件必须如下所示: C9 C2 90 8C 81 08 BE 80 04
int main(int argc, char **argv) {
if (argc < 3)
{
fprintf(stderr, "Usage: input.txt output.txt\n");
return EXIT_FAILURE;
}
FILE *input, *output;
input = fopen(argv[1], "r");
output = fopen(argv[2], "w");
int c;
unsigned int values[100] = { 0 };
int i = 0;
if (input != NULL)
{
printf("Values:\n");
while ((c = fgetc(input)) != EOF)
{
values[i] = c;
putchar(c);
i++;
}
printf("\n");
fclose(input);
}
else
{
fprintf(stderr, "File could not be opened.\n");
return EXIT_FAILURE;
}
if (output != NULL)
{
int j = 0;
for (j; j < i; j++)
{
putc(values[j], output);
}
fclose(output);
}
else
{
fprintf(stderr, "Could not generate output file.\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}