2017-08-30 430 views
0

我是一名新的C++学习者,并使用Visual Studio代码作为我的IDE。作为一个例子,一个cpp文件在其中写入了hello world程序。在VSC中,我使用名为Build(>任务:运行构建任务)的任务编译cpp文件,并使用名为Run(>任务:运行任务)的任务运行该文件。 (tasks.json在下面给出)如何停止任务运行终端程序在Visual Studio代码结束后自动退出?

但是,当我Run,“任务 - 运行”命名的新的终端开始,显示输出,并立即退出(它很难看到什么是输出)。

是否有任何命令可以放入tasks.json文件中,以便程序在结束后不会消失?或者还有其他解决方法吗?

//my tasks.json file 

{ 
"version": "2.0.0", 
"tasks": [ 
    { 
     "taskName": "Build", 
     "type": "shell", 
     "command": "g++", 
     "args": [ 
      "main.cpp" 
     ], 
     "group": { 
      "kind": "build", 
      "isDefault": true 
     }, 
     "problemMatcher": [] 
    }, 
    { 
     "taskName": "Run", 
     "type": "shell", 
     "command": "./a.out", 
     "problemMatcher": [] 
    } 
] 
} 
+0

一种解决方法是尝试在应用程序的末尾读取新行,以便它等待用户输入。然后,当你按下回车键时(因为\ n字符)它会退出。 –

+0

感谢您的快速响应,但我不想更改源代码。描述中的“Hello world”仅仅是一个例子。我有时参与竞争性编程,在那里,我不能在代码的末尾添加一个新的线路阅读器(因为这会在所有OJ中导致TLE)。还有更多的理由不改变源代码。 –

+0

我明白了。那确实存在问题。另一种方法是尝试拦截SIGTERM信号,并以某种方式阻止终端关闭,但这也意味着修改源代码(实际上相当多)。如果这仍然不能满足您的需求,那么我认为唯一需要做的就是搜索IDE或'tasks.json'文件以进行某种设置。 –

回答

0

更多黑客攻击比一个修复的,但我也有同样的问题,我注意到,从“2.0.0”改变版本“0.1.0”将保留我的输出窗口中打开所有存在错误。

虽然我很确定这不是一个长期的解决方案。

+0

不起作用。它给出以下错误:“值不被接受。有效值:[”2.0.0“]”。另外当我运行一个任务。什么都没发生。我认为它是特定于版本的。这意味着它可能适用于您的VSC,但不适用于我的。 –

+0

@RahatZaman我正在使用VSC版本1.15.1。我也收到错误“价值不被接受”,但我可以忽略它并运行任务没有问题。 – AMVaddictionist

+0

然后我们使用相同的版本。但是如前所述,当我运行任务时没有任何反应。 –

相关问题