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 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址