我有一个 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
在将其写入文件之前格式化为中间字符串。将每次迭代存储在“上一个”变量中,并将其与当前进行比较。
像这样的东西:
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();