在将它们写入文件之前比较使用fprintf生成的两个结果行

时间:2013-05-24 18:11:24

标签: c++ c printf

我有一个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循环中,我想以编程方式检查两个后续行是否匹配。我的问题是什么是最好的方法来做到这一点以及noob需要知道什么来实现它(只是说不要假设太多的预知)。

2 个答案:

答案 0 :(得分:4)

在将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); } 格式化为中间字符串。将每个迭代保存在“先前”变量中,并将其与当前变量进行比较。

这样的事情:

{{1}}

答案 1 :(得分:2)

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

}
foo.close();