国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決Visual Studio Code程序運(yùn)行后外部終端界面閃退的問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了解決Visual Studio Code程序運(yùn)行后外部終端界面閃退的問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

場(chǎng)景:
背景:在vscode下運(yùn)行C語(yǔ)言程序時(shí),總會(huì)出現(xiàn)外部輸出終端界面閃退的情況,在查看了許多資料后,終于解決了問(wèn)題,寫下這篇文章記錄一下自己解決問(wèn)題的過(guò)程。


問(wèn)題描述

代碼運(yùn)行后外部輸出界面閃退:

// 輸入一批學(xué)生的成績(jī),找出最高分
#include <stdio.h>
int main(void)
{
    int grade, max;
    grade = 0;
    max = 0;
    while (grade >= 0)
    { // 因?yàn)槌煽?jī)不可能為負(fù),故設(shè)定一個(gè)偽數(shù)據(jù)作為循環(huán)結(jié)束的標(biāo)志
        printf("enter grade:");
        scanf("%d", &grade);
        if (grade > max)
        {
            max = grade;
        }
    }

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

在運(yùn)行上述代碼段后,按照提示輸入鍵入一串成績(jī)(以一個(gè)負(fù)數(shù)作為循環(huán)結(jié)束的標(biāo)志),但終端界面只是閃爍了一下就沒(méi)了。


分析:

我們不想讓輸出界面一閃而過(guò)的原因是我們想看到程序運(yùn)行的結(jié)果。這時(shí),在cmd/powershell下鍵入對(duì)應(yīng)程序的地址,運(yùn)行后可達(dá)到結(jié)果。當(dāng)然,我們既然選擇了vscode,必然就圖他寫代碼運(yùn)行代碼方便快捷,如果運(yùn)行和調(diào)試還要專門跑去command執(zhí)行就太麻煩了,所以如何在vscode里徹底解決才是我們思考的問(wèn)題。

解決方案:

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

具體操作見(jiàn)下方的鏈接。
修改launch.json文件的具體操作

提示:
使用這種方案后,程序可能會(huì)無(wú)法進(jìn)行調(diào)試。請(qǐng)?jiān)谔D(zhuǎn)鏈接后仔細(xì)讀文章并慎重修改。


方案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)
    { // 因?yàn)槌煽?jī)不可能為負(fù),故設(shè)定一個(gè)偽數(shù)據(jù)作為循環(huán)結(jié)束的標(biāo)志
        printf("enter grade:");
        scanf("%d", &grade);
        if (grade > max)
        {
            max = grade;
        }
    }
    printf("最高分為:%d\n", max);
    system("pause");
    return 0;
}

提示:
有些程序只需添加#include <stdlib.h>頭文件并在程序結(jié)尾加上system("pause")便能正常運(yùn)行與調(diào)試;但有些程序還需在前者的基礎(chǔ)上再做一步:在return 0處設(shè)置斷點(diǎn)。

所做修改如下:
vscode運(yùn)行窗口一閃而過(guò),學(xué)習(xí)筆記,vscode,c語(yǔ)言
程序運(yùn)行結(jié)果如下:
vscode運(yùn)行窗口一閃而過(guò),學(xué)習(xí)筆記,vscode,c語(yǔ)言


方案3

在程序末尾的return跳轉(zhuǎn)語(yǔ)句前加getchar()語(yǔ)句。

說(shuō)明:
當(dāng)程序無(wú)輸入時(shí),加一個(gè)getchar()即可;而如果程序中有一個(gè)或多個(gè)輸入時(shí)(例如使用一個(gè)或多個(gè)scanf()函數(shù)),那么就要添加兩個(gè)。
原理:getchar()函數(shù)讀取下一個(gè)輸入字符,因此程序會(huì)等待用戶輸入。在程序沒(méi)有輸入的情況下,一個(gè)getchar()就會(huì)讓程序的輸出停留并將用戶的輸入作為程序結(jié)束標(biāo)志(無(wú)論是輸入什么);而在程序本身就有輸入時(shí),在提示輸入下正常輸入并按下enter鍵后,scanf()函數(shù)會(huì)讀取鍵入的正常輸入的數(shù)字或者字符,而第一個(gè)getchar()則讀取換行符,第二個(gè)getchar()讓程序暫停,等待用戶輸入以結(jié)束程序的運(yùn)行。

用以下代碼示例。

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;
}

此時(shí),我輸入age后程序的輸出在屏幕上一閃而過(guò)。同樣,在加了一個(gè)getchar()后也不行。
以下是加了兩個(gè)getchar()后的結(jié)果:
vscode運(yùn)行窗口一閃而過(guò),學(xué)習(xí)筆記,vscode,c語(yǔ)言


總結(jié)

第一種方法可能會(huì)導(dǎo)致后續(xù)程序debug環(huán)節(jié)出問(wèn)題;第二種和第三種方案都可以有效解決問(wèn)題。當(dāng)然,每個(gè)人的vscode的C/C++編譯環(huán)境配置不一定都相同,所以上述方案僅供參考。

參考資料:
http://t.csdn.cn/VaL34
http://t.csdn.cn/j8mDt
《C primer plus》by Stephen Prata文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-591794.html

到了這里,關(guān)于解決Visual Studio Code程序運(yùn)行后外部終端界面閃退的問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包