当前位置:编程学堂 > vs2019调制控制台程序_VS2019每次运行时都会在新的控制台窗口中打开相同的控制台项目

vs2019调制控制台程序_VS2019每次运行时都会在新的控制台窗口中打开相同的控制台项目

  • 发布:2023-10-10 07:11

1前言

在写程序的时候,即使提前想好了想法,但过程中总会漏掉一些东西,最终导致程序无法运行。这时候,调试程序的技巧就变得非常重要了。接下来我将以Visual Studio 2019(以下简称vs2019)为例介绍我如何调试C++程序。

2 创建项目并编辑程序

打开vs2019,选择右侧创建新项目。

?为项目类型选择一个空项目。

?将项目名称改为Test2(也可以是自己选择的英文名称,如project1),并选择要保存的位置,方便查找位置文件。然后单击“创建”。

?进入界面后,在左侧解决方案管理器中右键单击源文件,添加,新建一项。

选择C++文件,将名称更改为main.cpp,然后单击“添加”。在main.cpp编辑窗口中输入以下程序。

#包括

#包括

使用命名空间 std;

int main() {

/*

例如:

输入三个数字并计算它们的总和、平均值和最小值

*/

//定义3个int类型变量

//编写程序时,将变量名称替换为英文或英文缩写,以增加程序的可读性

//定义变量时,尽量初始化变量

//int number1 = 0, number2 = 0, number3 = 0;

int num1 = 0, num2 = 0, num3 = 0;

//读取键盘输入的3个数字

cin >> num1 >> num2 >> num3;

//1。计算它们的总和

int sum = 0;

总和 = num1 + num2 + num3;

cout << "总和:" << 总和 << endl;

//2。计算他们的平均值

//平均值必须定义为实数变量(带小数)

双平均值 = 0.0;

平均值 = 总和 / 3.0;

//保留一位小数显示

cout << "平均值:" << setiosflags(ios::fixed) << set precision(1) << avg << endl;

//观察除以3的情况

//案例1

int temp = 总和 / 3;

双 avg3 = 温度;

//案例2

双 avg2 = 总和 / 3;

//3。计算最小值

int min_value = 0;

//如果数字1小于数字2,则最小值暂为数字1,否则暂为数字2

如果 (num1 < num2) {

最小值 = num1;

}

其他{

最小值 = num2;

}

//如果临时最小值大于数字3,

//那么最终的最小值就是数字3

// 否则为之前的临时最小值,保持不变;

if (min_value > num3) {

最小值 = num3;

}

cout <<“最小值:”<< min_value << endl;

}

从顶部工具栏中选择:调试---开始执行(不调试)或按ctrl+f5?键盘上运行程序。

输入数字5 1 1,结果如下:

?2 尝试调试程序

2.1 使用调试方法观察总和计算

添加断点

在程序第21行和第22行的行号左侧单击一次,即sum = num1 + num2 + num3;? ? cout << "总和:" << 总和 << endl; ,出现一个红点标记,说明这里添加了两个断点。

进入调试模式时,当程序到达断点时,会暂停等待我们的操作。

共有三种操作:

将鼠标放在按钮上(不要点击),会出现提示:

F11逐条语句,一行一行地执行代码,遇到函数就会进入函数;

逐步F10,遇到函数时,不进入函数,直接执行该函数所在行,其余逐行执行;

退出shift+F11 退出当前功能。

可以参考:https://www.sychzs.cn/question/1822134520430420108.html

开始调试

添加断点后,在工具栏中选择“调试---开始调试?”或者按F5开始调试程序。

先输入三个数字5 1 1,输入后回车,程序停留在第21行(第一个断点)。可以看到第一个断点内部有一个黄色箭头,表示程序当前停留在此处。 ?

我们现在可以在左下角的自动窗口中观察各个变量的值,如下图

?可以观察到此时的输入值已经存储在三个变量num1,num2,num3中;而第21行的语句还没有执行,sum的值仍然是我们定义变量时设置的初始值0。

点击三个按钮中的逐条语句(F11),执行第21行并停留在第22行,如下图

?此时sum的值就变成了求和结果7。

初步调试到此结束。我们点击红色方块(三个按钮旁边,shift+F5)退出调试。

2.2 使用调试来观察平均操作

添加断点

首先我们清除上次调试的断点,点击断点的红点。

然后在第27、29、32、33、35、38行添加断点,如下图

?接下来,F5开始调试。输入三个数字5 1 1。程序停留在第27行等待我们的操作。此时avg的值为0,如下图

?我们使用逐语句执行功能(F11)。程序执行到第27行,停留在第29行。此时我们可以观察到变量avg的结果变成了2.333....(自动窗口或者局部变量窗口)

?继续逐条执行F11。程序停留在第32行。控制台保留一位小数,并输出avg变量的值。

?继续逐条语句执行F11,程序停留在第33行,此时第32行的语句已经执行完毕。

我们可以在局部变量窗口中观察到temp的值为2。int类型sum和int类型3运算的结果仍然是int类型,并且int类型没有小数。 7/3的结果小数部分直接舍去,导致7/3的结果是2的情况。

?继续逐条语句执行F11,程序停留在第35行,此时第33行的语句已经执行完毕。

我们可以观察到此时avg2变量的值为2.0,因此我们可以知道,如果此时将int类型运算结果赋值给double类型avg2变量,则无法返回小数。这是案例1,也就是案例​​2的拆解步骤。

??继续逐条语句执行F11,程序停留在第38行,此时第35行的语句已经执行完毕。

我们将sum/3的运算结果直接赋值给double类型的avg3变量。结果还是一样,7/3的小数部分被永久丢弃。因为这里所做的操作其实和情况1的操作是一样的,只不过是一步完成的。

如果我们想保留 sum 除以 3 的小数部分,我们必须将 sum 定义为实数变量(float 或 double),或者将 3 替换为 3.0。 3.0在C++中默认为double类型,或者两者都修改。

这是由运算时类型的隐式转换决定的。如果有一个操作op(operate的缩写),a和b需要参与操作,

a? ?奥普? ?b

然后在a和b运算之前会进行隐式类型转换,将a和b的低位类型转换为高位类型。

例如

int a;

双b;

a + b;

加法计算前,将低位类型a由int转为double,然后将两个double类型变量相加,结果为double类型,带小数。

3 总结

其实调试还是很简单的。有时甚至不需要断点。我们使用 cout 或 printf 来输出变量的值。执行某行代码后可以看到变量的值,即没有断点调试。如此直观,但又方便。

另外,你还可以尝试在屏幕前使用调试的方式来观察找到最小值的程序的运行情况。

我会根据情况更新这部分。

下载 Visual Studio 2019

官网下载地址 https://www.sychzs.cn/zh-hans/downloads/ 1.双击安装可执行程序,点击继续 2.开始安装Visual Studio Installer,安装完成迅速地。 3.如果使用windos,请选择这三项。您还可以在此处指定安装位置。默认语言为简体中文。您可以在语言包选项中选择英语。 4、点击安装后,开始安装,在Installer面板中可以看到安装进度。

5。安装完成后,打开时会提示登录,可以选择“稍后再说” 6.设置开发环境和主题颜色

7。开始创建项目,选择控制台应用程序,然后选择空项目。这样,项目中就不会再有其他代码了。 8、编写程序:右键源文件->添加->新建项,选择C++文件(.cpp),给文件命名,然后编写代码。

#包括

使用命名空间 std;

int main(){

cout<<"你好,c++"<

返回0;

}

选择菜单:调试->开始执行,或者按快捷键ctrl+F5。出现如下图所示的结果。打印hello,c++ 我们的第一个c++程序完成了

??????? Visual Studio 2019中的同一个控制台项目在第二次启动并运行时,会默认关闭第一次打开的控制台窗口。有时你想修改参数来比较输出结果,但又不想在启动新实例时,关闭前一个实例的运行结果。修改方法如下:

打开vs2019,在工具栏中选择“工具->选项”,在打开的对话框中选择“调试->常规”,勾选“调试停止时自动关闭控制台”,如下图所示:

?以下是一个简单的C++控制台测试程序:

int main(){

printf("这是一个控制台应用程序。\n");

返回0;

}

在勾选“调试停止时自动关闭控制台”??? “Ctrl + F5”??运行结果:

此时,再次按“Ctrl+F5”,旧的控制台窗口将关闭。

勾选“调试停止时自动关闭控制台”??? “Ctrl + F5”???运行结果:

?此时,你可以对程序进行一些修改,编译,然后按“Ctrl+F5”运行它。先前打开的控制台窗口将不会关闭。

相关文章