问题产生
首先我是在刷算法时遇到的问题,比如在acwing 上刷题时 , 评测时,不会说我的那个数据出问题了 ,一个一个找错误数据又显得呆呆的,因此,我想要一个在编译器中就显示的那个数据错了的样子
我实现的样子
配置输入输出重定向
关于输入输出的问题 我是在task.json 里面解决的,用cat 命令重定向输入输出就可以完成程序从文本中取出数据
一下是我的task。json 文件
{
"version": "2.0.0",
"tasks": [
{
"label": "build c++ as mac",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-std=c++17",
"-o",
"${workspaceRoot}\\exes\\${fileBasenameNoExtension}.exe"
],
"group": "build",
"presentation": {
"echo": true,
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false,
"reveal": "silent"
}
},
{
"type": "shell",
"label": "build c++ as win",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${workspaceRoot}\\exes\\${fileBasenameNoExtension}.exe"
],
"problemMatcher": ["$gcc"],
"group": "build"
},
{
"type": "shell",
"label": "redirection run",
"command": "g++ -g ${file} -o ${workspaceRoot}/exes/${fileBasenameNoExtension}.exe ; cat ${workspaceRoot}/redirection/input | ${workspaceRoot}/exes/${fileBasenameNoExtension}.exe > ${workspaceRoot}/redirection/your_output",
"problemMatcher": ["$gcc"]
}
]
}
这个要注意先创建文件 我的是 在目录redirection 下的 三个文件 expect_answet(程序正确的值) input (程序需要输入的值) your_output (你写的程序输出的值 这个可以删掉因为每次生成的都是覆盖旧的) 还有一个exes文件夹 存放生成的exe文件 (因为文件多了 就不好看了)
那么接下来就可以使用了 使用 ctrl + shift + p 然后搜索 run task 点击run task (运行任务) 再点击 redirection run(上面json出现的label)就可以运行了
这个是不是太麻烦了 当然vscode还有快捷键可以用啊 配就完事了 ctrl + shift + p 搜索 keyboard shortcuts 点击 第一个
然后就到了 keybindings.json 文件里了
然后添加下面的话 注意每个大括号是要用’ ,‘分隔的这个只是其中一个 如果你配置了其他快捷键应该会有很多映射关系
{
"key": "ctrl+r",
"command": "workbench.action.tasks.runTask",
"args": "redirection run"
}
那么当你想使用重定向输入输出时就直接使用 ctrl+ r 就可以实现了
比较差异
解下来有了输入输出,就应该是比较了
我是直接用vs code 自带的比较功能进行比较了 这样子有差异的地方会有高亮显示
这样子就会显示这两个文件的差异在哪里了
那么接下来就拖拽排版就行了
|