首页 > 解决方案 > 如何将 ./a.out 和 .txt 文件与 diff 进行比较?

问题描述

所以我有一个c程序,例如test1.c,我想将它与一个名为test1expectedoutput.txt.

我该怎么做?

c我通过do编译了文件(用nano编写) gcc test1.c,但是如何比较它?

.c文件.txt与 diff 进行比较显然是行不通的,因为它只是随机地将它们全部打印出来,但是如果我尝试在该文件目录中使用 diff 进行比较:

diff ./a.out test1expectedoutput.txt

我收到的消息是:

Binary files ./a.out and test1expectedoutput.txt differ

所以我不是 100% 确定如何比较它们并知道它们的区别是什么?简单地说,说程序test1.c只是说:

printf("Hello\n");

test1expectedoutput.txt刚刚阅读(与猫):

Hello

编译后如何比较这些?

标签: clinuxdiff

解决方案


我了解您的意思是将 c 程序的输出与 txt 文件进行比较。在这种情况下,您可以首先通过将标准输出重定向到 .txt 文件来将输出存储到另一个文件:

./a.out > output.txt
diff output.txt test1expectedoutput.txt

diff命令还支持-文件名的符号,告诉它从标准输入中读取。因此,您无需将其存储到另一个文件中,只需使用单个命令diff将标准输出重定向到命令的标准输入即可:

./a.out | diff test1expectedoutput.txt -

推荐阅读