【发布时间】:2018-06-24 19:20:41
【问题描述】:
我想比较两个未知大小的文件(a.txt,b.txt),找出其中的共同和单一数字,然后将它们写入单一和共同的其他文件(commons.txt,single.txt)。文本文件)。我认为下面代码的逻辑是正确的,但由于某种原因,common.txt 和 single.txt 都没有正确的值。
while (fscanf(a, "%d", &num1) != EOF)
{
int found = 0;
while (fscanf(b, "%d", &num2) != EOF)
{
if (num1 == num2)
{
fprintf(commons, "%d\n", num1);
found = 1;
break;
}
}
if (found == 0)
fprintf(single, "%d\n", num1);
}
【问题讨论】:
-
您的条件存在缺陷...如果the
fscanffunction 无法解析来自文件的输入会怎样?这不是导致它返回EOF的错误。 -
您确定带有 I/O 的
O(n^2)算法是一种合理的方法吗? -
@user3121023 谢谢它的工作,如果你想把它作为答案发布
-
@Someprogrammerdude 我在前面的几行中有 ;)