1

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

4

2 回答 2

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);
}
于 2013-05-24T18:14:25.407 回答
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();
于 2013-05-25T05:50:59.627 回答