我想请你帮忙。
我写了一个从文件中复制字节的小程序,但保存为文本。
这就是我现在得到的:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf ("Opening input.txt:\n");

    FILE *fi;
    fi = fopen("input.txt", "rb");

    FILE *fo;
    fo = fopen("log.txt", "w");

    if (fo == NULL)
    {
        printf("Error opening file!\n");
        exit(1);
    }

    int c;

    while((c=fgetc(fi))!=EOF)
    {
        printf("%02X", c & 0xFF);
        fprintf(fo, "%02X", c & 0xFF);
    }

    printf("\n\n--- End of file ---\n");
    fprintf(fo, "\n\n--- End of file ---\n");

    fclose(fi);
    fclose(fo);

    return 0;
}

看起来一切都按我的要求进行,但我只有一个小小的log.txt格式的请求。
以下是十六进制格式的input.txt示例:
00 83 70 22 00 30。。。。。。。。88立方英尺
00 83 70 22。。。。。。。。88立方英尺
00 83 70 22 00。。。。。。。。88立方英尺
线条长度可变。
印刷成这样:
008370220030……..888CFFFF00837022……..888CFFFF0083702200……..888CFFFF
---文件结尾---
一切正常,但只有一个问题是我想在检测到“0083”时打印新行。像这样的:
008370220030……..888CFFFF
00837022……..888CFFFF
0083702200……..888CFFFF
---文件结尾---
我对C语言没有多少经验,但这个小程序可以按我的要求工作。只是不知道在检测到同步字节时,如何指定打印新行的代码。
非常感谢你的帮助!!!
编辑!!!
所以最后一切都按我的意愿进行了!谢谢大家!!!

最佳答案

声明:

uint16_t detect = 0xffff;

在printf之后添加
detect <<= 8;
detect |= (unsigned)ch & 0xff;

id(detect == 0x0083) printf("\n");

关于c - C程序-在检测到同步字节之前打印新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45769455/

10-12 18:05