我想请你帮忙。
我写了一个从文件中复制字节的小程序,但保存为文本。
这就是我现在得到的:
#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/