[英]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.