C++入门知识点一

C++的由来

1、C程序的设计者必须细致地设计程序中的每一个细节,准确地考虑到程序运行时每一时刻发生的事情,例如各个变量的值是如何变化的,什么时候应该进行哪些输入,在屏幕上应该输出什么等。这对程序员的要求是比较高的,如果面对的是一个复杂问题,程序员往往感到力不从心。
↓↓↓↓
2、提出了面向对象OOP(Object Orienred Programming)的思想,C++的发明不是替代        C语言,而是在它原有的基础上加以发展。C++保留了C语言原有的所有优点,并增加了面向对象的机制。C++对C的改进主要体现在增加了适用于面向对象程序设计的"类(class)"

不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用
途、互为补充的。在面向对象程序设计中仍然要用到结构化程序设计的知识,例如,在类
中定义一个函数就需要用结构化程序设计方法来实现。任何程序设计都需要编写操作代
码,具体操作的过程就是面向过程的。对于简单的问题,直接用面向过程方法就可以轻而
易举地解决。

C++课程学习计划安排:

阶段内容目标案例
第一阶段C++基础语法入门对C++有初步了解,能够有基础编程能力通讯录管理系统
第二阶段C++核心编程介绍C++面向对象编程,为大型项目做铺垫职工管理系统
第三阶段C++提高编程介绍C+泛型编程思想,以及STL的基本使用演讲比赛系统
综合大案例:机房预约系统

最简单的C++程序
 

#include <iostream>
using namespace std;

int main()
{
    cout << "hello world!" << endl; //注意看输出的样式
    return 0;
}

最简单的代码的解析 

使用cout输出时一定会用到iostream头文件  #include <iostream>

iostream是C++标准库中的一个头文件,其主要作用是提供对输入输出流(I/O stream)的支持。iostream一般用于在控制台或文件之间进行输入和输出操作,是使用C++实现输入/输出的最基础和最常用的方式。对于控制台,可以用其向用户显示信息或通过输入获取用户数据。对于文件,iostream可用于从文件读取内容或将内容写入文件中,也是使用C++进行文件操作的核心。iostream库广泛用于C++程序中,使得开发者能够方便地进行各种输入输出操作。例如,这个头文件包含了一些基本的输入输出类,如:cin、cout、cerr、clog等。

  • cin:标准输入,从控制台输入流到程序内,由键盘输入。

  • cout:标准输出,输出流到显示器显示有所中间操作,输出至屏幕。

  • cerr:标准出错输出,向标准错误设备(屏幕)输出错误流,输出至屏幕。

  • clog:cerr的缓冲形式,向日志文件和记录文件输出信息流​​​​​​​,输出至屏幕

using namespace std; //使用命名空间std
C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要使用C++标准库中的有关内容(此时需要用include指令),就需要用“using namespace std;”作声明,表示要用到命名空间st中的内容。


标准C++程序要求main函数必须声明为int型所以,main前面要加int,在main函数的最后要加一句语句return 0;
 

C++保留了C语音中的一些规定,例如某些头文件依旧以.h为结尾。如:stdio.h  math.h  string.h
近年推出的C++编译系统新版本的头文件不带后缀,如:iostream、string、cmath等。当两者并存时,怎么使用都行。但是,带后缀.h的头文件不必使用"using namespace std;"作声明。

使用VScode

打开VScode,今天忽然有了一个报错:spawn pidof ENOENT

找到原因:是指尝试在你的系统上执行命令 "pidof" 失败,因为该命令不存在。
解决办法:在终端上输入pidof。结果系统上未安装 "pidof" 命令。

所以安装pidof:

使用Homebrew:
   - 首先,安装Homebrew。在终端中运行以下命令:
     /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
   - 安装 `pidof`。在终端中运行以下命令:
     brew install pidof
pidof:这是一个用于获取进程ID的常见命令,通常在大多数Linux和Unix系统上可用。

C++中的输入与输出

输出:

​​​​​​​cout实际上是C++系统定义的对象名,称为输出流对象
<< 是"插入运算符",与cout配合使用。

在C++中,一般用cout进行输出。cout是由c和out两个单词组成。<<将右侧的字符串"Hello World"插入到输出的队列(输出的队列也叫输出流)cout中。可以在一个输出语句中使用多个运算符"<<",从而将多个输出项插入到输出流中,每一个输出项都需要有一个<<,"<<"运算符的结合方向为从左到右,因此各输出项按自左到右顺序插入到输出流中。
除了可以用cout进行输出外,在C++中还可以用printf函数进行输出,但是显然cout好用。

cout语句中的endl是C++输出时的控制符,作用是换行(endl是end line的缩写,表示本
行结束,与“\n”作用相同)。​​​​​​​ endl:end of line

输入:

cin是c和in两单词的组合,与cout类似,cin是C++系统定义的输入流对象。

“>>”是“提取运算符”,与cin配合使用,其作用是从输入设备中(如键盘)提取数据送到输入流cin中。用cin和“>”实现输入的语句简称为cin语句。
 

指定输出所占的列数:

如果要指定输出所占的列数,可以用控制符setw进行设置,如setw(5)的作用是为
其后面一个输出项预留5列的空间,如果输出数据项的长度不足5列,则数据向右对齐,
若超过5列则按实际长度输出。
说明:若使用setw,应当在程序的开头包含头文件iomanip(或iomanip.h)。

/*
假如:a = 3.45,b=5,c=A
*/

cout<< "a="<<setw(6)<<a<<endl<<"b="<<setw(6)<<b<<endl<<"c="<<setw(6)<<c<<endl;

/*
输出结果:
a = 口口口3.45
b = 口口口口口5
c = 口口口口口A
*/

(可见endl不一定要在末尾使用,在需要换行的地方添加即可)

cout << a<<endl;在调用执行时的逻辑:

endl和cout是iostream类的对象。
当执行cout << a << endl;时,首先会将`a`的值传递给`cout`对象,然后再将`endl`操作符插入到`cout`对象中。

`cout`对象实际上是一个类的实例,该类重载了`<<`操作符,使其具有将数据插入流的功能。这种重载的操作符被称为插入运算符或位移运算符。

在C++中,`cout << a << endl;` 实际上是通过连续的 `<<` 运算符进行多次调用的。可以将其拆解为类似于 `op<<(op<<(cout, a), endl);` 的形式,其中 `op<<` 是流插入运算符的重载。

具体的执行过程如下:
1. 首先,`cout` 是一个标准输出流对象,它是 `ostream` 类(`ostream`是`iostream`头文件中定义的`cout`所属的输出流类的基类)的一个实例。
2. 然后,`op<<(cout, a)` 调用了重载的流插入运算符,将变量 `a` 的值插入到 `cout` 中。
3. 接着,`op<<(op<<(cout, a), endl)` 将前面返回的 `cout` 对象作为第一个操作数,将 `endl`(用于换行)插入到 `cout` 中。
4. 最后,整个表达式完成后,输出结果被发送到标准输出流中,并显示在控制台上。

需要注意的是,`<<` 运算符的重载允许我们以连续的方式使用它,从而实现链式输出的效果。这在C++中被称为“流式输出”。

定义变量与常量

定义变量:数据类型 变量名 = 初始值;

定义常量:1、#define 宏常量    #define 常量名 常量值    //通常在文件上方

                   2、const 修饰的变量   const 数据类型 常量名 = 常量值

                         //通常在变量定义前加关键字cost,修饰该变量为常量,不可修改

数据类型存在的意义:给变量分配合适的内存空间。数据类型同C语言。

sizeof关键字:sizeof(数据类型)

 数据类型

实型(浮点型)

1.单精度float
2.双精度double

字符型

字符型变量用于显示单个字符。 char c = 'a';

注意:在显示字符型变量时,用单引号将字符括起来,不要用双引号;
           单引号内只能有一个字符,不可以是字符串。

a - 97, A - 65

字符串类型

要使用双引号。

有两种风格:

一种是C语言风格:char ch[] = "字符串值";  //其实就是字符的数组

一种是C++语言风格:string 变量名 = "字符串值";  

 //要使用的话,必须有一个头文件:#include<string>

转义字符

作用:用于表示一些不能显示出来的ASCII字符
现阶段我们常用的转义字符有:\n  \\  \t

在C++中:\n 可以替代 << endl使用

\\用于输出一个\

布尔类型bool

作用:布尔数据类型代表真或假的值
b0ol类型只有两值:true-真(本质是1)   false-假(本质是0)
boo类型占1个字节大小。

注意true和false都是小写。

定义为true输出时是1(非0值即可),定义为false输出时是0。

system("pause")

在C++编程中,`system("pause")` 是一个用于在Windows系统上暂停程序执行的常见代码。

它的作用是在程序执行完毕后等待用户按下任意键,才会继续执行下去,以防止程序一闪而过无法看到结果。`system("pause")` 函数调用会执行系统命令 `"pause"`,这个命令会在命令行终端显示 "Press any key to continue..."(按任意键继续...),并等待用户按下键盘上的任意键,回车键也可以。这样做的目的是在程序执行完后提供一个暂停的机制,以便程序结果能够被用户看到。

然而,`system("pause")` 在现代的C++编程中不再被推荐使用。

以下是一些原因:
1. 它只适用于Windows系统。在其他操作系统上(如Mac或Linux),`system("pause")` 不起作用。
2. 它会创建一个新的命令行终端窗口,这在某些情况下可能会引起不必要的干扰。
3. 它没有实际的编程目的,只是为了暂停程序执行,这可能不是一个良好的编程实践。

替代 `system("pause")` 的方法是使用标准库中的输入机制,例如:
```cpp
#include <iostream>

int main() {
    // 程序代码

    std::cout << "Press ENTER to continue...";
    std::cin.get();  // 等待用户按下回车键

    return 0;
}
```
这样可以获得与 `system("pause")` 类似的效果,而且跨平台适用。

但是现在不需要使用这一命令了

 小知识点

1、C++中的关键字/标识符

在定义变量或常量时,不要用关键字。

2、文件后缀

c++文件后缀是.cpp

3、万能开头

两行必备的代码

#include <iostream>
using namespace std;
 4、注释

//这是单行注释

/*

  这是多行注释,

  多行注释一般放上方

*/

上述知识点的代码:

#include <iostream>
using namespace std;
#include <string> //string类型字符串的头文件

#define day 7

int main()
{
    int a = 10;
    const int month = 12;
    float f1 = 3.14f;  //   注意后面有一个f
    float f2 = 3e2;  //f2 = 3*10^2
    float f3 = 3e-2; //f3 = 3 * 10^-2
    double d1 = 3.14;
    char ch = 'a';
    char CH = 'A';
    char str1[] = "Hello !";
    string str2 = "Hello C++!";
    bool flag1 = true;
    bool flag2 = false;
    

    cout << "一周一共有:" << day <<"天" << endl;  //常量
    cout << "一年一共有:" << month <<"个月" << endl; //常量
    cout << "a = " << a << endl; //注意看如何去输出一个变量
    cout << "int 类型所占的内存空间为:" << sizeof(int) << endl; //sizeof()的使用方法
    cout << "f1 = " << f1 << endl;  //单精度浮点型
    cout << "f2 = " << f2 << endl; 
    cout << "f3 = " << f3 << endl; 
    cout << "d1 = " << d1 << endl;  //双精度浮点型
    cout << "ch = " << ch << endl; //字符型
    cout << ch << " 对应的ASCII码值是:" << int(ch) << endl; //查看字符对应的ASCII码值
    cout << CH << " 对应的ASCII码值是:" << int(CH) << endl; // a - 97, A - 65
    cout << "hello world!" << endl; //注意看输出的样式
    cout << "hello world!\n";  //在C++中:\n 可以替代 << endl使用
    cout << "str1 = " << str1 << endl;  //c语言类型的字符串,输出时不需要加[]
    cout << "str2 = " << str2 << endl; //C++类型的字符串
    cout << "flag1的类型是:" << flag1 << endl; //布尔型
    cout << "flag2的类型是:" << flag2 << endl;

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wmpreturn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值