You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用diff命令对比C程序运行输出与预期txt文件内容

C程序运行输出与预期文本对比方法

你之前操作出错的核心原因是混淆了「编译生成的二进制可执行文件」和「程序运行时的输出内容」:a.out是gcc编译得到的二进制程序文件,本身不是程序的运行输出,直接和文本文件对比自然无法得到预期结果。

具体操作步骤如下:

  • 第一步:运行编译好的可执行文件,将运行输出重定向存储到临时文件
    执行命令:./a.out > actual_output.txt
    该命令会把程序运行时打印到终端的所有内容写入actual_output.txt文件中。
  • 第二步:使用diff命令对比实际输出文件和预期输出文件
    执行命令:diff actual_output.txt test1expectedoutput.txt
    命令的输出就会明确标注两个文件的具体差异内容。

示例场景运行结果

对应你给出的测试场景:代码为printf("Hello\n");,预期文件内容只有Hello没有末尾换行,执行diff后会输出如下提示明确差异点:

1c1
< Hello
---
> Hello
\ No newline at end of file

更简便的一步对比方法(无需生成临时文件)

你可以直接用进程替换语法,把程序运行输出直接传给diff做对比,省去中间文件的生成:
diff <(./a.out) test1expectedoutput.txt

如果需要忽略行尾的空白字符(比如多余的换行、空格)差异,可以加-Z参数:
diff -Z <(./a.out) test1expectedoutput.txt

内容的提问来源于stack exchange,提问作者CantCodeForShit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:09:03