上C++课程,电脑上的编译器只装了VS,另一台电脑没带回来,那就用VS写C嘎嘎吧,这篇随笔记录最近踩过的那些坑。
1.关于VS暂停控制台窗口的问题。
好不容易写完作业代码,编译运行一下看看效果,结果VS窗口一闪就退出了,我:???
C#中学到的一种解决方案是在结尾插一句:Console.ReadKey()。示意程序等待我们输入一个键。
那西嘎嘎呢?
查了一下,可以用这种方法:
system(“pause”);
//从程序中发起系统命令行调用,执行命令:pause。让控制台暂停,等待用户信号。
效果和上面的Console.ReadKey()一致。
2.关于VLA问题。
之前做蓝桥杯模拟题,碰到一个关于数组的问题,但我愣是没法解决,查了半天发现和VS和C++标准有关。
下面这段代码在DEV C++下可以正常编译运行,但在Visual Studio里编译就会报错,
int n;
cin >> n;
int a[n];
它说n不是常量值,编译时无法确定这个值。
我:?? C语言中我记得这样用完全没问题啊???
上网翻找了下,原来该部分内容称为VLA(可变长数组),因为C99标准支持VLA,所以在C语言中我们可以这么干。
但是VS的集成开发环境对C99的支持是不完备的,它一直就不允许VLA,而C++11的标准也不支持VLA。所以我们无法在Visual Studio中写出上述代码。
但GCC编译器可以。
参考博客:https://blog.csdn.net/veghlreywg/article/details/90382294(博主:未来老干部)