c - 自动使用fgets()测试程序

标签 c fgets

我目前正在从事类似bash的项目。但是,我需要使用数千个测试来测试该项目,而这些测试无法手动检查。这就是为什么我想自动执行测试。

我的程序使用fgets()来获取用户输入。我知道如何直接向程序发送参数,但是当程序启动时,它会显示程序提示。如何在标准输入上添加包含测试的文件,以使程序能够解释测试? (并在终端中获取程序输出)。

最佳答案

假设所有测试输入都存储在名为“ test.input”的文件中(每一行都是该程序的完整输入),则可以在bash中执行以下操作:

export LINE_NO=0
cat test.input | while read LINE; do echo "$LINE" | ./program > results.$LINE_NO;
   LINE_NO=$(($LINE_NO + 1));
done


基本上,对于test.input中的每一行,上述命令会将其馈送到程序中并将程序的结果存储在results.0,results1、1,result.2等中,其中results.number是test.input文件的行号。

希望这可以帮助。

关于c - 自动使用fgets()测试程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293431/

相关文章:

c - fgets 将字符串添加到另一个变量

指向整数数组的字符指针

C 将二维数组传递给函数

c - scanf 之后 fgets 不起作用

fgets 在换行前设置空字符后清除输入流

c - 数组参数上的 fgets()

c - 没有宏的静音 printf

你能声明一个地址不变但元素可变的数组吗?

c - 从文件中读取数字并将其存储在 C 中的二维数组中

c - 在 C 中给定一个文件名,如何读取每行只有 75 个字符?