• 【C++ 程序设计入门基础】- Chapter One


    目录

    一、什么是 C++?

    1、概念

    2、标准库

    二、第一个 C++ 程序

    1、下载 C++ 开发工具

    2、开始下载好之后,我们先设置一下编码,解决中文注释不显示的问题。

     3、下面我们就可以新建一个源代码

    4、 编写完成后,我们就可以运行查看结果。

    5、头文件、命名空间和主函数的详细说明

    三、输入输出、格式

    1、概述

    2、四个预定义的标准流对象

    setfill(char c)

    setprecision(int n)

    setw(int n)

     四、基本运算


    一、什么是 C++?

    1、概念

    C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。

    不同于C语言,C++是一种面向对象的语言,在 C 语言的基础上,C++ 扩充了一些自己特有的知识,如 bool 类型、重载函数、模板、STL等。

    C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。

    C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

    注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。

    2、标准库

    标准的 C++ 由三个重要部分组成:

    • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
    • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
    • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。

    二、第一个 C++ 程序

    1、下载 C++ 开发工具

    这里我用的是 Dev-C++ 6.3 开发工具。

    2、开始下载好之后,我们先设置一下编码,解决中文注释不显示的问题。

    • 工具 -> 编辑器选项 -> 基本 -> 将New Document Encoding选为UTF-8

    在utf-8格式下中文注释仍然无法显示

    • 工具 -> 编辑器选项 -> 显示 -> 去掉这个勾勾 

     3、下面我们就可以新建一个源代码

    点击文件-> 新建-> 源代码 myFirst.cpp

    1. #include//输入输出头文件
    2. //i=input 输入
    3. //o=output 输出
    4. //stream 流
    5. using namespace std;//命名空间,防止变量名冲突
    6. //std=standard 标准的
    7. int main()//主函数,这里名称只能是main
    8. {
    9. //cout:表示输出的符号
    10. //<< :表示插入数据
    11. //endl:表示换行
    12. cout<<"zhaoYanFei,hello world!"<
    13. return 0;//返回0
    14. }

    4、 编写完成后,我们就可以运行查看结果。

    点击运行:

            -> 编译(F9)

            -> 运行(F10)

            -> 编译运行(F11)

    这里我们就直接 F11 编译运行即可。

    输出如下:

    5、头文件、命名空间和主函数的详细说明

    头文件

    C++ 中的输入、输出头文件 iostream
    i   —— input 输入
    o —— output 输出
    stream —— 流
    C 语言中的头文件以 .h 后缀,C++ 中头文件不加后缀。

    C 语言中的string.h头文件,C++用 cstring,C语言中的 math 头文件,C++ 使用 cmath 头文件。

    这不只是形式上的改变,其实现也有所不同。

    命名空间

    C++ 标准库中所有标识符并定义于一个名为 std 的命名空间中,std称为标准命名空(standard,标准的)。
    引入标准命名空间方法:
    using namespace std;
    注意:语句末尾的分号不能少 。

    主函数

    主函数main()是程序的入口,每个程序都需要一个唯一主函数。主函数返回值为int型。

    1. int main()//主函数,这里名称只能是main
    2. {
    3. //cout:表示输出的符号
    4. //<< :表示插入数据
    5. //endl:表示换行
    6. cout<<"zhaoYanFei,hello world!"<
    7. return 0;//返回0
    8. }

     注意:程序末尾返回0;

    三、输入输出、格式

    1、概述

    • 标准输入输出流的对象和操作方法都是由 istreamostream 两个类提供的,这两个类继承自ios 基类,它们预定义了标准输入输出流对象,并且提供了多种形式的输入输出功能。
    • C++ 在进行输入时需要从流中提取数据,在输出时需要向流中插入数据,提取和插入是通过在流类库中重载 “>>” “<<” 运算符来实现的。

    2、四个预定义的标准流对象

    cin:是 istream 类的对象,用于处理标准输入(即键盘输入);

    cout:是 ostream 类的对象,用于处理标准输出(即屏幕输出);

    cerr、clog:也都是 ostream 类的对象,用于处理标准出错信息,并将信息显示到屏幕上。

    在这四个标准流对象中,除了cerr不支持缓冲外,其余3个都带有缓冲区。

    对象名所属类对应设备含义
    cinistream键盘标准输入,有缓冲
    coutostream屏幕标准输出,有缓冲
    cerrostream屏幕标准错误输出,缓冲
    clogostream屏幕标准错误输出,有缓冲

    cin 与提取运算符 “>>” 结合使用;

    cout、cerr 与 clog 与插入运算符 “<<” 结合使用,完成了 C++ 中所有的输入输出操作。

    1)cin

    cin 是 istream 类的对象,它从标准输入设备(键盘)获取数据,程序中的变量通过提取运算符“>>”从流中提取数据,然后送给cin对象,由cin将对象送到指定地方。

    1、输入单个数值

    cin是带缓冲区的输入流对象,只有在输入完数据按下回车键后,该行数据才被送入键盘缓冲区,形成输入流,提取运算符“>>”才能从中提取数据。

    1. int a;
    2. cin>>a;

    此时若从键盘上输入6,则 6 只是存入缓冲区而并不能为 “>>” 运算符提取,当按下回车键(Enter)后,相当于执行 endl 语句,则缓冲区中内容才被刷新形成输入流,被 “>>” 运算符提取,然后传递给 cin 对象,由 cin 对象送到变量 a 中存储。


    从流中读取数据要保证能正常进行。例如,如果针对上述代码从键盘输入“我是飞哥”,则提取操作会失败,此时,cin 流被置为出错状态。只有在正常状态时才能从输入流中提取数据,这也是C++I/O 的安全性体现。

    注:这里如果输入中文时,头文件需要引入函数库

    #include 

    一系列的函数都在头文件中包含(是一个函数库) 

    而且在主函数的第一行需要设置编码

    SetConsoleOutputCP(CP_UTF8);

    /2、除了单个变量读取,cin对象也可以一次读入多个变量的值,因为“>>”运算符返回的是 istream 的引用,可连续提取数据。

    1. char c1,c2;
    2. cin>>c1>>c2;

     若从键盘输入’a’、’b’两个字符,上面的cin语句把输入的’a’字符送给变量c1,把输入的’b’字符送给c2。当输入多个数值时,要在数值之间加空格以示区分,cin 读到空格时,就能够区别输入中的各个数值。

    当字符型 char 输入时,多个之间可以省略空格。

    除了在输入的数据之间加空格,也可以在每输入一个数据后按回车键,这样完全可以正确的读入数据。

    3、采用cin对象也可以对不同类型的变量读入数据。

    1. string s;
    2. float f;
    3. cin>>s>>f;

    当从键盘正确输入字符串和float类型的值时,cin将它们分别存储到对应变量中。字符串的读入也可以采用字符数组存储,例如: 

    1. char str[10];
    2. cin>>str;

     如果用一个字符数组存储字符串,要确保输入的字符串不超出字符数组的大小,否则会发生溢出,破坏内存中的其他数据。

    2)cout

    cout 是 ostream 类预定义的对象,对应的标准设备为屏幕,称作标准输出对象或屏幕输出对象,但也可以重定向输出到磁盘文件。用户可以通过 cout 对象调用 ostream 类的插入运算符和成员函数来输出信息。

    1、利用cout对象可以直接输出常量

    在输出常量值时,直接将要输出的内容放在“<<”运算符后面即可。 

    1. cout << 10 << endl;
    2. cout << 'a' << endl;
    3. cout << "C++" << endl;

     2、利用cout对象输出变量的值

    1. int a = 10;
    2. string s = "C++";
    3. float f = 1.2;
    4. cout << a << endl; //输出int类型的变量
    5. cout << s << endl; //输出string类型的变量
    6. cout << f << endl; //输出float类型的变量

    在用 cout 输出变量值时,不必设置以什么格式输出,“<<” 运算符会根据变量的数据类型自动调用相匹配的重载函数,而正确输出。这比C语言中的 printf() 函数用法更简便。

    3、利用 cout 对象输出指针引用类型的数据

    当输出数据类型为指针或引用时,与 printf() 函数的用法一致;

    不加 “*” 符号是输出指针的值,即变量的地址;

    带有 “*” 符号输出的是指针指向的变量的值;

    它比 printf() 的简便之处在于不必设置数据的输出格式。

    1. int a = 10,*p;
    2. int& b = a;
    3. p = &a;
    4. string s = "C++";
    5. string* ps = &s;
    6. cout << p << endl; //输出结果是指针p的值,a变量的地址
    7. cout << b << endl; //输出结果是b的值10
    8. cout << *p << endl; //输出结果是指针p指向的变量的值,即a的值10
    9. cout << ps << endl; //输出结果是指针ps的的值,s变量的地址
    10. cout << *ps << endl; //输出结果是指针ps指向的变量的值,即s的值”C++”

    上面代码中,变量前带 “*” 号的表示为指针。

    地址 “&” 符号在等号 “=” 左侧表示变量的引用,在等号 “=” 右侧表示取地址。

     4、cout对象可以连续输出数据

    1. int a = 10;
    2. char c = 'a';
    3. cout << a << "," << c << endl;

    当用户在程序中包含了头文件iostream时,编译器调用相应的构造函数产生这 4 个标准流对象,用户在程序中就可以直接使用它们了。

    1. #include
    2. #include
    3. using namespace std;
    4.  int main()
    5. {
    6. SetConsoleOutputCP(CP_UTF8);
    7. const double pi = 3.14159;
    8. double r, c, s;
    9. cout << "输入圆的半径:";
    10. cin >> r;
    11. c = 2.0 * pi * r;
    12. s = pi * r * r;
    13. cout << "圆的周长为:" << c << endl;
    14. cout << "圆的面积为:" << s << endl;
    15. return 0;
    16. }

     3)精度、域宽和填充字符的设置

    引入头文件

    #include 

    操作符

    功能

    setfill(char c)

    设置以c表示的填充字符

    setprecision(int n)

    设置以n表示的数值精度

    setw(int n)

    设置以n表示的域宽
    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. int main()
    6. {
    7. double d=sqrt(2.0);
    8. cout << "精度设置:" << endl;
    9. for (int i = 0; i < 5; i++)
    10. {
    11. cout <<setprecision(i)<//设置不同的精度
    12. }
    13. cout << "当前精度为:" <precision() << endl;
    14. cout << "当前域宽:" <width() << endl;
    15. cout <<setw(6)<//默认是右对齐
    16. cout << "当前填充字符:" << endl;
    17. cout<<setfill('*') <<setw(10)<//setfill()函数可以直接插入流中
    18. return 0;
    19. }

     注:cout <

    这里所设置的精度为小数点前后都包含的位数。

    如果想要设置我们通常讲的保留小数点后几位,那么应该设置精度前,加定点输出。

    cout<

    cout <//设置不同的精度

    4)常用的操作符

     四、基本运算

    5 种基本运算:加(+)、减(-)、乘(*)、除(/)、模取余数(%)。

    示例代码:

    1. #include
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. int n;
    7. int ge,shi,bai;
    8. cin>>n;
    9. ge=n%10;
    10. shi=(n/10)%10;
    11. bai=(n/100)%10;
    12. cout<setw(2)<setw(2)<
    13. return 0;
    14. }
    • 算术运算符

    运算符

    运算

    范例

    结果

    +

    正号

    +3

    3

    -

    负号

    b=4;-b;

    -4

    +

    5+5

    10

    -

    6-4

    2

    *

    3*4

    12

    /

    5/5

    1

    %

    取模

    7%5

    2

    ++

    自增(前)

    a=2;b=++a;

    a=3;b=3;

    ++

    自增(后)

    a=2;b=a++;

    a=3;b=2;

    --

    自减(前)

    a=2;b=--a;

    a=1;b=1;

    --

    自减(后)

    a=2;b=a--;

    a=1;b=2;

    • 赋值运算符

  • 相关阅读:
    软件测试之编写用例的重要性
    服务器cpu和普通cpu有哪些不同
    常见的数码管中的引脚分布情况
    【编程之路】面试必刷TOP101:动态规划(78-82,Python实现)
    DenseNet:Densely Connected Convolutional Networks--CVPR2017最佳论文奖
    Jmeter 如何做性能测试生成聚合HTML报告?
    Shell脚本案例:安装指定路径下的所有apk到安卓设备
    家用汽车使用相关的英语
    金仓数据库 KingbaseES PL/SQL 过程语言参考手册(17. B PL/SQL名称解析)
    网页里面的3D交互展示是怎么做的呢?
  • 原文地址:https://blog.csdn.net/weixin_36754290/article/details/127505283