如何为K&R2练习1-8的C语言字符统计程序提供测试输入?
如何测试统计空格、制表符和换行符的C程序?
你写的这段是《K&R2》练习1-8的代码,用来统计输入中的空格、制表符和换行符数量,测试时可以通过以下几种方式提供输入:
1. 控制台手动输入
运行编译后的程序后,直接在控制台输入内容:
- 按空格键输入空格,按Tab键输入制表符,按Enter键输入换行符
- 输入完成后,按 Ctrl+D(Linux/macOS)或 Ctrl+Z(Windows)发送EOF信号,程序就会结束输入并输出统计结果。
比如你可以输入:foo bar baz(两个空格、一个制表符),按Enter,再输入qux,然后触发EOF,就能看到对应的计数。
2. 用文件作为输入源
- 先创建一个测试文本文件(比如
test.txt),在里面写入包含目标字符的内容,例如:第一行 有两个空格 第二行 有一个制表符 第三行(单独换行) 第四行开头有空格和制表符 测试 - 编译程序(比如
gcc count_chars.c -o count_chars),然后通过输入重定向运行:./count_chars < test.txt
程序会自动读取文件所有内容,读完后直接输出统计结果,适合批量测试复杂输入。
3. 用管道传递构造好的输入
可以用echo命令结合转义字符快速生成测试输入,通过管道传给程序:
# 示例:生成包含1个空格、1个制表符、2个换行符的输入 echo -e "a b\tc\n\n" | ./count_chars
这里-e参数让echo解析转义字符:\t代表制表符,\n代表换行符,空格直接写入即可。
测试建议
可以设计几个明确的测试用例验证正确性:
- 仅输入3个空格后触发EOF,确认空格计数为3
- 仅按2次Tab+1次Enter后触发EOF,确认制表符计数2、换行符计数1
- 混合输入多种字符,手动数清楚数量后对比程序输出
内容的提问来源于stack exchange,提问作者gambrelle
相关产品推荐
相关产品推荐

