c++ - 在 VSCode 上使用 GCC(9.2.0) 编译的 .exe 文件在执行时未运行
问题描述
我在 Stack Oveflow 上搜索了一个与我类似的问题,发现了一个案例,但它与我的完全不同。所以,这是我的问题。
我正在使用已链接到 MigGW GCC 编译器 (v.9.2.0) 的 Visual Studio Code 来编译和执行 c 和 c++ 程序。到目前为止,我使用 MinGW 创建的所有可执行文件都可以顺利运行。除了少数节目。
我无法弄清楚问题所在。如果没有首先初始化变量,我不会执行任何操作并且没有歧义。尽管如此,编译成功完成,但 .exe 文件拒绝工作。我尝试运行它cmd
,但 VSCodeintegrated terminal
的 exe 文件仍然无法运行。
(我使用tasks
VSCode 中的文件来创建exe
文件)
这是我的代码:
#include<iostream>
#include<string.h>
using namespace std;
void swap(int *p1, int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main()
{
int n1, n2;
int choice, err;
char ch;
cout << "\nHello\n";
do
{
cout << "\nChoose:\n";
cout << "1) Call by value.\n";
cout << "2) Call by reference (addresses).\n";
cout << "3) Call by reference (pointers).\n";
cout << "4) Exit.\n";
cin >> choice;
try
{
if(isalpha(choice))
throw choice;
else
{
cout << "Enter n1: ";
cin >> n1;
cout << "Enter n2: ";
cin >> n2;
switch(choice)
{
case 1:
swap(n1, n2); //call by value
break;
case 2:
swap(&n1, &n2); //call by reference (addresses)
break;
case 3:
//swap(); //call by reference (pointers)
cout << "\nProper\n";
break;
case 4:
exit(0);
break;
default:
cout << "\nWrong option.\n";
break;
}
cout << "After swapping: \n";
cout << "n1 = " << n1 << "\tn2 = " << n2 << endl;
}
}
catch(int err)
{
cout << "\nEnter a valid option:\n";
}
cout << "Press Y to run again.\n";
cin >> ch;
}while(ch =='y' || ch == 'Y');
return 0;
}
有人可以告诉我:
- 为什么
exe
不运行? - 以后如何避免此类问题?我是否以某种方式编写代码,或者我还能做什么?
(这不是我遇到此问题的唯一代码。)
解决方案
推荐阅读
- ios - iOS:通知内容扩展中的键盘正在向上推送内容
- python - 在 Windows 10 中安装 mysqlclient 或/和 mysql-python 时出错
- haskell - 带有严格注释的`newtype`和`data`之间的区别
- python - 具有基于 Django Rest Framework 类的视图的 RestFul API 端点
- google-cloud-platform - 是否可以进行个人实例分割并使用从 Google API Vision 获得的网络在云外运行?
- mobile - Flutter 在小部件之间传递数据?
- architecture - DDD,你如何改变一个ValueObject?
- android - 如何使用 RecyclerView 和单个 ImageView 制作“完美”的 2 网格布局
- python - 如何在不恢复图形的情况下从 tensorflow 检查点提取权重和其他变量值?
- datepicker - 未捕获的错误:模块“AppModule”导入的意外指令“MatFormField”。请添加@NgModule 注释