qq_36838446 2018-12-30 21:24 采纳率: 100%
浏览 308
已采纳

请问可以用测试代码实现控制cin内容吗?

新手在学c++,练习题很多是利用cin之类输入信息然后运行。会给出测试点,但是需要手敲,需要换行的时候ctrl+v就不好用了。因为cin通常是分段使用的,把结果挨个覆盖的话,测试完需要挨个注释掉很容易漏。请问可以用代码把字符串预先输入cin里,然后运行时不需要手敲直接从cin里读已有的字符串吗?

我知道类似Java的JUnit,c++也有类似框架,奈何用的不灵清,况且感觉覆盖cin跟简单些。

  • 写回答

3条回答 默认 最新

  • louqunhua 2018-12-31 12:27
    关注

    为了加快程序的调试过程,减少手工输入造成的时间浪费,建议使用CMD中的输入输出重定向功能。

    下面举一个简单的例子作为使用方法演示

    现在有一个需要测试的c++程序,为了简单起见,我们选择最简单的A+B Problem。程序代码如下:

    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    int main()
    {
        int a, b;
        cin >> a >> b;
        cout << a + b << endl;
        return 0;
    }
    

    将其编译链接后我们可以得到可执行程序add.exe
    下面开始调试。
    在可执行程序所在文件夹下新建一个文本文档,其中存放我们所要求的所有输入数据,并命名为data.in
    接下来我们需要打开CMD(按Win+R打开运行,输入cmd并回车就打开cmd),
    先切换当前路径到可执行程序所在文件夹
    切换路径可使用“cd 路径”命令
    然后就可以使用重定向功能了。
    输入命令
    add.exe < data.in > soulution.out

    执行完毕后,程序的输出就会保持到soulution.out文件中。
    用记事本打开查看即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料