第1章 开始使用C++
开始使用C++
- 开始使用C++
- 1.1 安装Miscrosoft Visual Studio 2015/2017
- 1.2 用Miscrosoft Visual Studio创建项目
- 1.3 用Microsoft Visual Studio写程序
- 1.4 用Visual Studio 运行程序
- 1.5兼容性问题 #1:stdafx.h或pch.h
- 1.6 兼容性问题#2:暂停屏幕
- 1.7 如果不使用Visual Studio
- 例1.1 :打印消息
- 练习 1.1.1
- 练习 1.1.2
- 练习1.1.3
- 1.8 跳到下个打印行
- 例1.2 :打印多行
- 练习1.2.1
- 练习1.2.2:
- 练习1.2.3:
- 1.9 存储数据:C++变量
- 1.10 数据类型简介
- 例1.3:温度换算
- 练习1.3.1:
- 练习1.3.2:
- 练习1.3.3:
- 1.11 变量名和关键字的注意事项
- 练习1.3.5:
- 小结
开始使用C++
1.1 安装Miscrosoft Visual Studio 2015/2017
下载地址:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
以windows平台为例:
安装时至少勾选这个:
1.2 用Miscrosoft Visual Studio创建项目
1.启动Visual Studio
2.选择"文件"|“新建”|“项目”。随后会出现下图所示的"新建项目"窗口。
3.在左侧窗格选择Visual C++模版。
4.在中间窗格选择"Win32控制台应用程序"(VS 2017 更名为"Windows控制台应用程序"。
5.在底部的"名称"文本框中输入"print1"。解决方案名称随后会自动显示相同文本。
6.单击"确定"按钮或直接按ENTER键。
如果出现"应用程序向导",请单击"完成"按钮。
1.3 用Microsoft Visual Studio写程序
// 双斜杠后面的这行语句表示注释,注释不会被执行# include "stdafx.h" // VS2017 需要把这句话改为 # include "pch.h"# include <iostream>using namespace std;int main(){cout << "别怕,C++很简单!";return 0;}
1.4 用Visual Studio 运行程序
在VS中按快捷键Ctrl + F5或选择"调试"|“开始执行(不调试)”。
注意:
两个 C++语句(输入的大多数代码行都是C++语句)以分号(;)结尾,#include指令不以(;)结尾。
C++大小写敏感(但大多数空白间距不敏感)。除了引号中的文本,这个程序没有任何大写字母。
1.5兼容性问题 #1:stdafx.h或pch.h
在 Microsoft Visual Studio中编译程序有下面几种方式
- 最简单的就是确定在用VS创建的任何程序中,在第一行一定是 # include “stdafx.h”(VS2017 换成了
”pch.h“)。如果是从别的地方复制过来的代码,一定确保有这句话。 - 如果想编译普通C++代码(非microsoft专用),创建项目时不要在”应用程序向导“中直接点击”完成“。相反,单击”下一步“,在”应用程序设置“窗口中取消勾选”预编译头“。
- 项目创建好之后也可以更改设置。选择”项目“| ”属性“(快捷键是ALT+F7),在左侧窗格选择”预编译头“。(可能要先展开”配置属性“和”C/C++“)最后在右侧窗格从相应下拉列表中选择”不适应预编译头“。
1.6 兼容性问题#2:暂停屏幕
如果使用Microsoft Visual Studio,最简单的方式是按快捷键Ctrl + F5,但并不一定对所有编译器有效。另一个办法是在return 0;的前面加入代码 system(“PAUSE”); 该语句的效果大致等于Ctrl + F5,但此方法只对Windows平台有效。
1.7 如果不使用Visual Studio
如果不使用Miacrosoft Visual Studio作为编译器,那在代码的前面不要加
" # include “stdafx.h"或”# include "pch.h"这句话。
例1.1 :打印消息
// 使用VS 请保留下面这一行
// # include "stdafx.h" // VS 2017 换成了 "pch.h"# include <iostream>
using namespace std;int main(){cout << "别怕,C++很简单!";return 0;}
练习 1.1.1
写程序打印消息Get with the program!。如果愿意,可以使用例子中的源代码,根据需要进行修改。
# include <iostream>
using namespace std;int main()
{cout << " Get with the program!";return 0;}
练习 1.1.2
写程序打印你的姓名。
# include <iostream>
using namespace std;int main()
{cout << " ALZ-one";return 0;}
练习1.1.3
写程序打印Do you C++?
# include <iostream>
using namespace std;int main(){cout << " Do you C++?";return 0;}
1.8 跳到下个打印行
打印换行最简单的方式是使用预定义常量 endl。例如:
cout << “别怕,C++很简单!” << endl;
注:endl是 end line的简称。最后是字母 l 而不是数字1,发音是end ELL而非 END ONE。还要注意,endl全称是 std::endl。using语句帮我们少打一个std::。
打印换行的另一个方式是插入字符\n。这称为“换码序列”,C++把它解释成具有特殊含义的语句而不是字面意思。以下语句效果和前一个语句一样:
cout << “Never fer, C++ is here!\n”;
例1.2 :打印多行
// print2.cpp
//使用Microsoft VS,请保留下面这一行:
// # include "stdafx.h" //VS2017换成了"pch.h"# include <iostream>
using namespace std;int main()
{cout << " I am ALZ-one," << endl;cout << "计算机之神!" << endl;cout << "畏惧我吧!!!" << endl;return 0;
}
记住,空白间距随便定,但大小写务必一致。
练习1.2.1
从本节的例子中删除换行符,但在引号内添加额外的空格使它们不紧挨在一起。最终输出如下所示:
我是ALZ-one,计算机之神!畏惧我吧!!!哈哈哈哈!!!
答案:
# include <iostream>
using namespace std;int main()
{cout << "我是ALZ-one,";cout << "计算机之神!";cout < "畏惧我吧!!!";cout << "哈哈哈哈!!!";return 0;}
练习1.2.2:
修改例子在每行文本之间打印一个空行(双倍行距)。提示:每个文本字符串后面打印两个换行。
答案:
# include <iostream>
using namespace std;int main()
{cout << "我是ALZ-one" << endl << endl;cout << "计算机之神!" << endl << endl;cout < "畏惧我吧!!!" << endl;return 0;
}
练习1.2.3:
修改例子在每行文本之间打印两个空行。
答案:跟上一题类似,懒得写了。
1.9 存储数据:C++变量
计算机程序的一个基本功能是从某个地方获取数据(例如用户输入),然后对其进行处理。这种操作需要变量,即放入数据的位置。可将变量想像成容纳值的箱子。程序运行期间,可以读取、写入或更改值。
cin >> ctemp;
下面是运行该语句发生的事情(实际过程更复杂,但目前只需知道这么多。)
1.程序暂停运行并等候用户输入值
2.用户输入数字并按Enter
3.获取数字并放到变量ctemp中
4.程序恢复运行
C++变量必须先声明再使用
(声明变量必须知道要使用什么数据类型。和其他大多数语言一样,这也是C++的一个关键概念。)
1.10 数据类型简介
变量是可在其中放入信息(或数据)的箱子。但能放哪种数据?所有计算机最终都是数值,但具有下面三种基本格式:整数、浮点和文本字符串。
浮点和整数格式存在几处区别,但语言规范很简单。
**保留小数要用浮点变量,否则用整型。
C++主要浮点类型是double(double-precision floating point)。还有单精度浮点类型float,但用的较少。保留小数直接用double好了。这样可获得更好的结果,错误消息也较少。
用一下语法声明double变量,和大多数语句一样,该语句要以分号(;)结尾。
double 变量名;
还可在一个double声明中创建多个变量:
double 变量名1, 变量名2,...;
例1.3:温度换算
公式:Fahrenheit = (Celsius * 1.8) + 32
可以写一个小程序将输入的任何摄氏度换算成华氏度。程序功能包括两个:
- 获取用户输入
- 将值存储到变量
// convert.cpp
//使用Microsoft VS,请保留下面这一行:
// # include "stdafx.h" //VS2017换成了"pch.h"# include <iostream>
using namespace std;int main(){double ctemp, ftemp;cout << "请输入摄氏度是:";cin >> ctemp;ftemp = (ctemp * 1.8) + 32;cout << "华氏度是:" << ftemp;return 0;
}
C++代码以双斜杠(//)开头,C++编译器会忽略直到行末的所有内容。
下面来优化这个代码(只用一个变量):
// 优化convert.cpp
//使用Microsoft VS,请保留下面这一行:
// # include "stdafx.h" //VS2017换成了"pch.h"# include <iostream>
using namespace std;int main()
{double ctemp;cout << "请输入摄氏度是:";cin >> ctemp;cout << "华氏度是:" << (ctemp * 1.8) + 32 << endl;return 0;}
再举一个例子:
// Square.cpp
//使用Microsoft VS,请保留下面这一行:
// # include "stdafx.h" //VS2017换成了"pch.h"# include <iostream>
using namespace std;int main()
{double x = 0.0;//提示并输入x的值cout << "请输入一个数然后按Enter:";cin >> x;// 计算并输出平方值cout << " 这个数的平方值是:" << x * x << endl;return 0;
}
练习1.3.1:
重写例子执行反向换算,输入华氏度ftemp,换算成摄氏度ctemp并输出。提示:公式是ctemp = (ftemp - 32) / 1.8。
答案:
#include <iostream>
using namespace std;int main()
{double ctemp, ftemp;cout << "输入华氏度并按Enter:";cin >> ftemp;ctemp = (ftemp - 32.0) / 1.8;cout << "摄氏度是: " << ctemp << endl;return 0;
}
练习1.3.2:
只用变量ftemp写华氏度到摄氏度换算程序,优化1.3.1的程序。
答案:
#include <iostream>
using namespace std;int main()
{double ftemp;cout << "输入华氏度并按Enter: ";cin >> ftemp;cout << "摄氏度是: ";cout << (ftemp - 32.0) / 1.8 << endl;return 0;
}
练习1.3.3:
写程序想变量x输入值,输出立方值(x * x * x),记得将字符串中square改成cube。
答案:
#include <iostream>
using namespace std;int main()
{double x;// 输入一个数cout << "输入一个数然后按Enter: ";cin >> x;// 打印立方值cout << "立方值是: ";cout << x * x * x << endl;return 0;
}
1.11 变量名和关键字的注意事项
变量名可以随便取,但前提是遵守以下规则:
- 首字母应该是字母。不能是数字。虽然首字母也可以是下划线(_),但C++库已经用了这个命名规范,所以我们应该尽量避免。
- 名字其余部分可以是字母、数字或下划线(_)。
- 不能使用C++预定义的单词,比如关键字。
C++关键字不必记全。输入和C++冲突的名称时编译器会报错。改个名字就好。
练习1.3.5:
一下哪些是合法C++变量名,哪些不是?
x1
EvilDarkness
PennslyvaniaAve1600
1600Pennsy1vaniaAve
Bobby+the+Robot
whatThe??
amount
Count2
Count2five
Scount
main
main2
答案:
你猜。
在编译器里声明一下,看哪些变量会报错。
小结
- 写C++源代码来创建程序。源代码由C++语句构成。这些语句和英语相似,较为直观。(与此相反,机器码一点都不直观,除非你能理解所有1和0的组合。)程序真正运行前要转换成机器码,这才是计算机能理解的东西。
- 将C++语句转换成机器码的过程称为“编译”。
- 编译之后,程序还需链接到C++库中存储的标准函数。该过程称为链接。这一步成功完成后才获得一个可执行程序。
- 在开发环境中,编译、链接和运行按一个功能键就可完成。编译和链接统称为“生成”。如果使用Microsoft Visual Studio,按组合键Cr+F5来生成并运行程序。
- Microsoft Visual Studio 要求每个程序的第一行都是#include"stdafx.h"。使用
“新建” | "项目”命令自动添加该行。 - 简单C++程序一般采用以下形式:
# include <iostream>
using namespace std;
int main()
在此输入你的语句!
{在此输入你的语句!return 0;
}
- 打印输出用cout对象。示例如下:
cout <<"Never fear,C++ is here!";
- 打印输出并跳到下一行用cout对象并发送一个换行符(endl)。示例如下:
cout <<"不要怕,C++很简单!"<< end1;
- 大多数C++语句都以分号(;)结尾。主要例外的是以 # 开头的指令。
- 双斜杠(//)开始一条注释: 直到行末的内容会被编译器忽略。注释对维护程序的人很有用。
- 变量必须先声明再使用。示例如下:
double x;//将x声明为浮点变量
- 要存储小数部分,变量应定义为double类型。double代表双精度浮点数。只有在浮点数据量过大时才应使用单精度浮点类型(float)。
- 用cin对象将键盘输入存储到变量。示例如下:
cin >> x;
- 还可用赋值操作符(=)将数据存储到变量。先对等号右边的表达式进行求值,再将结果存储到左边的变量。示例如下,
x=y*2;//y乘以2,结果放到x中
第1章 开始使用C++相关推荐
- 一篇文章告诉你标准化和归一化的区别?
一篇文章告诉你标准化和归一化的区别? 2019-02-28 17:12:39 融融网融融网阅读量:484 进一步推进企业的标准化工作,使之发展水平适应经济全球化下市场竞争的要求,促进企业综合实力的提升 ...
- 第25章 Pytorch 如何高效使用GPU
第25章 Pytorch 如何高效使用GPU 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的 ...
- 操作系统学习笔记 第六章:设备管理(王道考研)
本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...
- 操作系统学习笔记 第五章:文件管理(王道考研)
本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...
- 操作系统学习笔记 第四章:存储器管理(王道考研)
本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...
- 操作系统学习笔记 第三章:处理机调度与死锁(王道考研)
本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...
- 操作系统学习笔记 第二章:进程管理(王道考研)
本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系统概述 ...
- 王道考研 计算机网络笔记 第六章:应用层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
- 王道考研 计算机网络笔记 第五章:传输层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
- 王道考研 计算机网络笔记 第四章:网络层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
最新文章
- 中文微博客的热门锐推用户榜
- 微信小程序UI组件、开发框架、实用库...
- diskcheck.sh
- 苹果照片库的照片,直接拖到桌面上
- 怎么在html中写java代码,在html里面写java代码
- 【预测模型】基于布谷鸟算法优化最小二乘支持向量机lssvm实现预测matlab代码
- 有哪些比较好的免费简历网站?
- 创建局域网Git服务器
- mac 下 Parallels Desktop 克隆虚拟机 product_uuid 相同
- SKlearn - ValueError: Unknown label type: 'continuous'
- ubuntu 安装java运行环境,Ubuntu 安装java环境搭建
- VM安装win7系统一直失败,可能是镜像文件不对
- 刷题 Python: 明码
- Android--智能图像识别(基于百度智能云)
- 华为OD机试 - 最小调整顺序次数、特异性双端队列
- VS2015中无法查找或打开 PDB 文件
- safari对100vh的兼容问题
- ...weights already exists, disallowed. Did you mean to set reuse=True...(解决办法)
- 【课程汇总】Hello HarmonyOS系列课程,手把手带你零基础入门
- 抖音视频批量发布方法