繁体   English   中英

在将fprintf生成的两个结果行写入文件之前,先对其进行比较

[英]Comparing two result lines generated with fprintf before writing them to file

我有一个c ++命令行程序,它将数据列表写入文件作为验证过程的一部分,如下所示:

fprintf(code,"%s\t%s\t%5.3f\t%5.3f\t%5.3f\t\n", the_five_variables_the_data_comes_from

这是在for循环中发生的,我想以编程方式检查随后的两行是否匹配。 我的问题是执行此操作的最佳方法是什么,菜鸟需要什么知识来实现​​它(只是说不要承担太多的知识)。

在将sprintf写入文件之前,使用sprintf格式化为中间字符串。 将每次迭代都存储在“上一个”变量中,并将其与当前变量进行比较。

像这样:

char previous[SIZE];
*previous = '\0';

for (...)
{
    char buffer[SIZE];
    sprintf(buffer, "...", ...);
    if (strcmp(previous, buffer) == 0)
        // Do something.

    strcpy(previous, buffer);
    fputs(buffer, file);
}
ofstream foo("output.txt");
string out, temp;
...loop....
{
    out = variable1 + var2 + var3 + var4 + var5;
    if(out == temp)
         ...match...
    foo << out;
    temp = out;

}
foo.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM