解决Visual Studio Code程序运行后外部终端界面闪退的问题

这篇具有很好参考价值的文章主要介绍了解决Visual Studio Code程序运行后外部终端界面闪退的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:
背景:在vscode下运行C语言程序时,总会出现外部输出终端界面闪退的情况,在查看了许多资料后,终于解决了问题,写下这篇文章记录一下自己解决问题的过程。


问题描述

代码运行后外部输出界面闪退:

// 输入一批学生的成绩,找出最高分
#include <stdio.h>
int main(void)
{
    int grade, max;
    grade = 0;
    max = 0;
    while (grade >= 0)
    { // 因为成绩不可能为负,故设定一个伪数据作为循环结束的标志
        printf("enter grade:");
        scanf("%d", &grade);
        if (grade > max)
        {
            max = grade;
        }
    }

    printf("最高分为:%d\n", max);
}

在运行上述代码段后,按照提示输入键入一串成绩(以一个负数作为循环结束的标志),但终端界面只是闪烁了一下就没了。


分析:

我们不想让输出界面一闪而过的原因是我们想看到程序运行的结果。这时,在cmd/powershell下键入对应程序的地址,运行后可达到结果。当然,我们既然选择了vscode,必然就图他写代码运行代码方便快捷,如果运行和调试还要专门跑去command执行就太麻烦了,所以如何在vscode里彻底解决才是我们思考的问题。

解决方案:

方案1 添加launch.json文件的配置

具体操作见下方的链接。
修改launch.json文件的具体操作

提示:
使用这种方案后,程序可能会无法进行调试。请在跳转链接后仔细读文章并慎重修改。


方案2 在程序中添加system(“pause”)命令

添加system("pause")要包含头文件stdlib.h。所以修改后的代码段如下:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int grade, max;
    grade = 0;
    max = 0;
    while (grade >= 0)
    { // 因为成绩不可能为负,故设定一个伪数据作为循环结束的标志
        printf("enter grade:");
        scanf("%d", &grade);
        if (grade > max)
        {
            max = grade;
        }
    }
    printf("最高分为:%d\n", max);
    system("pause");
    return 0;
}

提示:
有些程序只需添加#include <stdlib.h>头文件并在程序结尾加上system("pause")便能正常运行与调试;但有些程序还需在前者的基础上再做一步:在return 0处设置断点。

所做修改如下:
vscode运行窗口一闪而过,学习笔记,vscode,c语言
程序运行结果如下:
vscode运行窗口一闪而过,学习笔记,vscode,c语言


方案3

在程序末尾的return跳转语句前加getchar()语句。

说明:
当程序无输入时,加一个getchar()即可;而如果程序中有一个或多个输入时(例如使用一个或多个scanf()函数),那么就要添加两个
原理:getchar()函数读取下一个输入字符,因此程序会等待用户输入。在程序没有输入的情况下,一个getchar()就会让程序的输出停留并将用户的输入作为程序结束标志(无论是输入什么);而在程序本身就有输入时,在提示输入下正常输入并按下enter键后,scanf()函数会读取键入的正常输入的数字或者字符,而第一个getchar()则读取换行符,第二个getchar()让程序暂停,等待用户输入以结束程序的运行。

用以下代码示例。

int main(void)
{
    printf("What's your age?\n");
    int age;
    scanf("%d", &age);
    printf("OK, now i know our age is %d\n", age);
    return 0;
}

此时,我输入age后程序的输出在屏幕上一闪而过。同样,在加了一个getchar()后也不行。
以下是加了两个getchar()后的结果:
vscode运行窗口一闪而过,学习笔记,vscode,c语言


总结

第一种方法可能会导致后续程序debug环节出问题;第二种和第三种方案都可以有效解决问题。当然,每个人的vscode的C/C++编译环境配置不一定都相同,所以上述方案仅供参考。

参考资料:
http://t.csdn.cn/VaL34
http://t.csdn.cn/j8mDt
《C primer plus》by Stephen Prata文章来源地址https://www.toymoban.com/news/detail-591794.html

到了这里,关于解决Visual Studio Code程序运行后外部终端界面闪退的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • visual studio code导入自定义模块报错的解决方法(pycharm中能够运行的文件,vs code报错:未找到指定模块)

    一、先看下目录结构 二、在main.py中导入Utils中的模块,直接导入即可 三、在custom_event_parse.py中导入execl_base.py中的模块 导入模块: 以上这种导入方式,如果run文件是main.py,是可以run的。 但是如果直接运行custom_event_parse.py进行调试的时候,就会报错。 报错: 解决办法: 修改

    2024年02月08日
    浏览(46)
  • Visual Studio Code 如何设置整体界面字体的大小?

    在某次操作中,我不小心误点了什么,导致 Visual Studio Code 界面的字体变小了很小,如下图所示: 我想把字体调整回来,该如何操作呢? 首先,第一步,打开设置: 第二步,进入工作区: 打开窗口: 修改参数: 可以看到,字体明显增大了!

    2024年02月12日
    浏览(38)
  • .NET / C# 开发 Ubuntu Desktop 跨平台图形界面桌面程序 Avalonia - Visual Studio 安装/创建/运行指南 (一)

    Avalonia 是一个开源的跨平台应用程序框架,用于构建桌面应用程序。它使用 C# 和 XAML 进行开发,可以在 Windows、macOS、iOS、Android 及 Linux 等多个平台上运行。Avalonia 项目地址:https://github.com/AvaloniaUI/Avalonia 本文快速介绍如何入门使用 Avalonia 编写和执行 Ubuntu Desktop 图形界面桌面

    2024年02月01日
    浏览(47)
  • 【Blender】使用 Microsoft Visual Studio Code 作为外部 IDE 来编写 Blender 脚本/附加组件

    Blender 有自己的内置文本编辑器,用于编写脚本和附加组件,但在外部 IDE 中开发它们非常方便,为用户提供更多功能,例如自动完成、语法高亮、与版本控制系统和其他工具的集成使开发更快更容易。 这些 IDE 之一是 Microsoft 的 Visual Studio Code。这是一个免费的通用环境 ,支

    2024年02月04日
    浏览(42)
  • Visual Studio Code配置Python运行环境

    Visual Studio Code配置Python运行环境(保姆级教学) Visual Studio Code是微软针对于编写现代Web和云应用开发的跨平台源代码编辑器,它支持多种语言和文件格式的编写,并且启动速度快,开源,语法高亮,颜值高等优点集于一身,受到许多开发者的热爱。 随着Python编程语言迅速的

    2024年02月16日
    浏览(39)
  • 使用Visual Studio Code 导入并运行vue项目

    一、安装并配置node.js 详见CSDN 查看node版本: 二、修改编辑器的语言(切换为中文) 打开VSCode, 快键键Ctrl+Shift+P ,搜索 Configure Display Language,选择安装其他语言,安装完成选择zh-cn,重启就变成中文了。  三、vue插件的安装(方便开发)(Ctrl+shift+X) eslint插件:eslint智能错误

    2024年02月08日
    浏览(50)
  • Flutter在Visual Studio Code上首次创建运行应用

    一、创建Flutter应用 1、前提条件     安装Visual Studio Code并配置好运行环境 2、开始创建Flutter应用 1)、打开Visual Studio Code 2)、打开  View Command Palette 。 3)、在搜索框中输入“flutter”,弹出内容如下图所示,选择“  Flutter: New Project ”,并点击Enter 4)、选择  Applocation ,并点击

    2024年02月04日
    浏览(36)
  • Visual Studio Code配置Tomcat运行Java Web项目

    ctrl+shift+p 打开搜索Maven原型, 并选择从maven原型创建新项目 或者按如下方式:选择从Maven原型创建Web项目 从 maven-archetype-webapp 原型创建项目 接着选择原型版本、输入包名、项目名、选择项目存放位置 注意:到此需要按一下回车来继续 输入Y或者回车确认 通过Maven原型创建的

    2024年02月05日
    浏览(37)
  • 解决:‘npm’不是内部命令或外部命令,也不是可运行的程序。npm ERR! code ELIFECYCLE npm ERR! errno 1

    自己按照网友建议弄了好几遍,依旧报错。最后得知可能是我无意间动了配置文件,也就是node_modules。 删掉项目中的node_modules文件夹和package-lock.json文件,手动删掉是最快的。 然后,执行 npm install 指令重新安装下载依赖库。(即node_modules、package-lock.json); 最后,重新执行

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包