依据两个条件筛选数据

问题遇到的现象和发生背景

将两个文件的数据保存到结构体中后,依据时间和编码将数据进行匹配,

问题相关代码,请勿粘贴截图
    int j_n = 0;//该历元的n文件的卫星数
epochnum_1 = 0;
for (int i_prno = 0; i_prno < epoch[epochnum_1].epochgps; i_prno++)
    for (int i_tn = 0; i_tn < line1; i_tn++)
    {
        if ((ephlst[i_tn].PRN = epoch[epochnum_1].oPRN[i_prno]) && (abs(ephlst[i_tn].t_ - epoch[epochnum_1].t_) < 3600))
        {
            j_n++;
            cout << i_prno << "   时间:" << epoch[epochnum_1].hour << "   编号:" << epoch[epochnum_1].oPRN[i_prno] <<"  判断编号是否变化:"<< epoch[epochnum_1].obs[i_prno]<<"    ";
            cout << i_tn << "   时间:" << ephlst[i_tn].hour << "   编号:" << ephlst[i_tn].PRN << "   判断编号是否变化:" << ephlst[i_tn].iode << endl;
        }
    }
运行结果及报错内容

运行结果

img

报错内容:
按理来说,两个红色区域应该唯一且对应,但运行结果epoch对应ephlst中所有时间满足条件的区域,未考虑编码相同的要求。

我想要达到的结果

依据时间和编码条件,筛选出一一对应的数据并用于后续数据处理。
正确输出结果应该为:
0 时间:0 编号:18 判断编号是否变化:2.48558e+07 210 时间:0 编号:18 判断编号是否变化:192

std::cout.precision(15);