如何在两个文本文件中计算不同的数据包编号
How to count the different packet number in two text file
我有两个文本文件in.text
和out.text
。我将将它们读入unsigned char **
,其中数组的每个元素存储长度为 T=32 的数据作为波纹管代码
char *filename = "in.text";
FILE *stream;
int numPackets = 10;
int T = 32; // Length of each packets
unsigned char **PacketsIn;
fopen_s(&stream, filename, "rb");
fseek(stream, 0, SEEK_SET);
for (int i = 0; i < numPackets; i++) {
fread(PacketsIn[i], 1, T, stream);
}
fclose(stream);
以同样的方式,我可以使用上面的代码获得PacketsOut
filename = "out.text";
FILE *streamout;
numPackets = 10;
T = 32; // Length of each packets
unsigned char **PacketsOut;
fopen_s(&streamout, filename, "rb");
fseek(streamout, 0, SEEK_SET);
for (int i = 0; i < numPackets; i++) {
fread(PacketsOut[i], 1, T, streamout);
}
fclose(streamout);
我想计算 PacketsIn
和 PacketOut
中有多少个不同的数据包(每个数据包都有 10 个数据包,我们将比较 PacketsIn
中的第一个数据包和 PacketsOut
中的第一个数据包。如果它们不同,则计数增加 1)。你能帮我解决吗
这就是我尝试过的
int count = 0;
for (int i = 0; i < numPackets; i++) {
if (PacketsIn[i] != PacketsOut[i])
count++;
}
数据包是字节数组,您必须为这些数组分配内存,作为自动存储、函数本地存储或带有 malloc
的堆。 此外,您不能将数组与==
或!=
进行比较,您需要使用执行逐字节比较的函数。 在 <string.h>
中声明memcmp
执行此操作,如果数组不同,则返回非 0 值。
这是更正后的版本:
#include <string.h>
int compare_packets(void) {
FILE *stream;
int numPackets = 10;
int T = 32; // Length of each packet
unsigned char PacketsIn[numPackets][T];
unsigned char PacketsOut[numPackets][T];
fopen_s(&stream, "in.text", "rb");
for (int i = 0; i < numPackets; i++) {
fread(PacketsIn[i], 1, T, stream);
}
fclose(stream);
fopen_s(&stream, "out.text", "rb");
for (int i = 0; i < numPackets; i++) {
fread(PacketsOut[i], 1, T, stream);
}
fclose(stream);
int count = 0;
for (int i = 0; i < numPackets; i++) {
if (memcmp(PacketsIn[i], PacketsOut[i], T)
count++;
}
return count;
}
当 memcmp 返回非零值时,这表示两个给定字符串之间的差异:
#include <string.h>
if (memcmp(PacketsIn[i],PacketsOut[i],32)!=0)
count++
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 如何在两个文本文件中计算不同的数据包编号
- 如何计算数组条目的条目编号