久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
十六進制數據改寫為C語言數組形式
[打印本頁]
作者:
馮特洛夫斯基
時間:
2022-10-13 10:58
標題:
十六進制數據改寫為C語言數組形式
/*
十六進制數據改寫為C語言數組形式
如:
0111
022222
03333333
生成:
{0x01,0x11},
{0x02,0x22,0x22},
{0x03,0x33,0x33,0x33},
如果第一個數為數據長度信息,第二個數為地址,其他為數據
如:
0111
022222
03333333
生成:
{0x01,0x01,0x11},
{0x02,0x02,0x22,0x22},
{0x03,0x03,0x33,0x33,0x33},
*/
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *fp = NULL;
int count = 0;
int num = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
char buf[16000] = {}; //存儲原來的數據
char buf2[16000] = {}; //原來的數據加上每行的數據個數
char result[16000] = {}; //改寫為C語言數組形式。
fp = fopen("str.txt", "r");
if (fp == NULL) {
printf("open str.txt err!\n");
return -1;
}
count = fread(buf, sizeof(char), sizeof(buf), fp);
printf("read %d bytes\n", count);
if (count < 0) {
printf("read err!\n");
return -1;
}
fclose(fp);
/* 每行前面兩個數據為該行有效16進制數據的長度,不需要長度信息,可以把下面這段屏蔽掉 */
#if 1
num2 += 2;
num3 = 0;
while(num < count) {
while(buf[num] != '\n') {
buf2[num2] = buf[num];
num2++;
num++;
}
if (buf[num] == '\n') {
buf2[num2] = buf[num];
num4 = (num2 - num3 - 1) / 2 - 1;
if (num4 / 16 >= 10)
buf2[num3] = num4 / 16 % 10 + 'A';
else
buf2[num3] = num4 / 16 + '0';
if (num4 % 16 >= 10)
buf2[num3+1] = num4 % 16 % 10 + 'A';
else
buf2[num3+1] = num4 % 16 + '0';
printf("num=%d, num2=%d, num3=%d, num4=%d\n", num, num2, num3, num4);
num3 = num2 + 1;
num2 += 3;
num++;
}
}
memset(buf, 0, sizeof(buf));
memcpy(buf, buf2, sizeof(buf));
printf("buf = %s\n", buf);
count = num2;
num = 0;
num2 = 0;
num3 = 0;
num4 = 0;
#endif
result[0] = '{';
result[1] = '0';
result[2] = 'x';
num2 = 3;
while (num < count) {
num3++;
if (buf[num] == '\n') {
num3 = 0;
result[num2++] = '}';
result[num2++] = ',';
result[num2++] = buf[num];
result[num2++] = '{';
result[num2++] = '0';
result[num2++] = 'x';
num++;
continue;
}
if (num3 <= 2) {
result[num2++] = buf[num];
}
if (num3 == 2) {
if (buf[num+1] != '\n') {
result[num2++] = ',';
result[num2++] = '0';
result[num2++] = 'x';
}
num3 = 0;
}
num++;
}
fp = fopen("result.txt", "w+");
if (fp == NULL) {
printf("open result.txt err!\n");
return -1;
}
count = fwrite(result, 1, num2+1, fp);
printf("write %d bytes\n", count);
if (count < 0) {
printf("write result.txt err!\n");
return -1;
}
fclose(fp);
return 0;
}
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美做爰xxxⅹ性欧美大片
|
日韩视频一区二区
|
黄av在线
|
香蕉成人网
|
黄www.
|
国产午夜影院
|
男女裸体无遮挡做爰
|
欧美性大战xxxxx久久久
|
久久久亚洲精品视频
|
欧美成人精品一区二区三区在线看
|
精品日韩
|
91久色
|
xxxxx国产
|
成人性色生活片
|
一区二区精品
|
99精品视频免费观看
|
男女啪啪免费视频
|
日本成人精品
|
日韩亚洲天堂
|
免费网站av
|
国产成人免费在线视频
|
黄色一级大片
|
日韩欧美小视频
|
欧美一二区
|
色综合久久久久
|
黄色片观看
|
亚洲一区免费观看
|
国产黄色精品视频
|
美国一级大黄一片免费中文
|
五月天一区二区三区
|
精品日韩在线
|
欧美成人一区二区三区片免费
|
中文字幕黄色
|
免费成人毛片
|
久久国产精品免费视频
|
天天躁日日躁狠狠很躁
|
成人免费黄色片
|
日韩三级久久
|
欧洲一级毛片
|
国产成人网
|
欧美视频三区
|