从VC++ 6.0 MSDEV到Visual Studio 2017的过渡阶段
很多学校在工科学生的C语言学习阶段会介绍VC++ 6.0给学生使用,但是当一些学生开始尝试在Visual Studio 2017学习C++时遇到了一些不适应,这里作个记录,帮助工科学生尽快适应VS2017.
注:使用C语言考PAT的同学编译器可以选择C(gcc)或C(clang).
阶段一:怎样在VS2017中新建项目写代码
首先去微软官网下载免费的Visual Studio 2017 Community(社区版)并安装打开,家里有矿的有钱同学可以选择其他版本。
1.1 文件-新建-项目
1.2 左边点选Visual C++,右边选择Windows 控制台应用程序,自己修改名称、位置,确定。
1.3 在左边的“解决方案资源管理器”中源文件-添加-新建项,弹出窗口中选择Visual C++内的C++文件(.cpp)
1.4 VS2017中一定加上这行代码
#include "stdafx.h"
否则VS2017调试不通过你的入门阶段的C代码!
#include "stdafx.h"
然后就像过去那样以C的风格写一个hello world,以后会对怎样过渡到C++风格作介绍。
1.5 生成解决方案,不带调试的运行
生成-生成解决方案
调试-开始执行(不调试)
1.6 运行效果如下
阶段二 以浙大PAT Basic 1001题目“害死人不偿命的3n+1猜想”为例介绍向C++风格的过渡(本文编译器C++(g++)),选用C++(clang++)也是可以的。
2.1 题目内容
2.2 VS2017中的调试和解说
解说版:
//害死人不偿命的(3n+1)猜想
#include "stdafx.h" //VS2017中必加的一行代码
#include<iostream> //引用VS2017中的输入输出流头文件的第一行代码
using namespace std; //引用VS2017的输入输出流头文件的第二行代码,这两行代码都是必不可少的
int main() //浙大PAT考试C++强制要求使用int main{return 0;}组合,不可以使用void main()
{
int n;
cin >> n; //输入:C语言用scanf() C++用cin>>
int i = 0;
while (n != 1)
{
i = i + 1;
if (n % 2 == 0)
n = n / 2; //C++整除用/,//是注释;python整除是//
else
n = (3 * n + 1) / 2;
}
cout << i; //输出:C语言用printf() C++用cout<<
return 0;
}
注意C++风格的输入输出流引用方式!
#include<iostream>
using namespace std;
简洁版:
//害死人不偿命的(3n+1)猜想
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 0;
while (n != 1)
{
i = i + 1;
if (n % 2 == 0)
n = n / 2;
else
n = (3 * n + 1) / 2;
}
cout << i;
return 0;
}
2.3 浙大PAT服务器(编译器C++(g++))中的调试
PAT不需要#include "stdafx.h",请去掉这句话!
//害死人不偿命的(3n+1)猜想
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int i = 0;
while (n != 1)
{
i = i + 1;
if (n % 2 == 0)
n = n / 2;
else
n = (3 * n + 1) / 2;
}
cout << i;
return 0;
}
测试成功!