我有一个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需要知道什么来实现它(只是说不要假设太多的预知)。
答案 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();