首页 > 编程语言 >C++菜鸟教程 - 从入门到精通 第一节

C++菜鸟教程 - 从入门到精通 第一节

时间:2024-09-01 18:23:30浏览次数:13  
标签:教程 cout int 菜鸟 cin C++ 输入 下载

一.C++简介

C++ 是一种编程语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。

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

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

C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。

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

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

面向对象程序设计

C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:

  • 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。

  • 继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。

  • 多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。

  • 抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。

标准库

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

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

ANSI 标准

ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。

由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。

学习 C++

学习 C++,关键是要理解概念,而不应过于深究语言的技术细节。

学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统。

C++ 支持多种编程风格。您可以使用 Fortran、C、Smalltalk 等任意一种语言的编程风格来编写代码。每种风格都能有效地保证运行时间效率和空间效率。

C++ 的使用

C++ 语言在许多行业和领域都有广泛应用,包括:

  • 游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。

  • 嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。

  • 金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。

  • 图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。

  • 科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。

二.C++环境设置 

对于初学者来说,RedPanda(小熊猫)是不错的

RedPanda下载

链接:下载

下载说明

  • Win11用户注意: 如果下载的安装程序被提示有病毒,请下载绿色版。
  • Windows下载注意:
    • 目前小熊猫C++最低要求windows 7操作系统
    • 从2.26版本开始,尝试提供Windows XP支持(感谢cynao.CN网友),可在百度网盘下载。
    • 32位windows系统用户请下载win32版本;64位windows系统用户请下载win64版本。
    • 安装版需要安装后使用绿色版解压后直接运行RedPandaIDE.exe即可使用(推荐使用7zip软件解压)。
    • 由于clang编译器(llvm-mingw项目)在中文编码支持、调试等方面存在诸多问题,不适合新手使用,不符合小熊猫C++作为新手IDE的定位,因此从1.1.2版起不再提供集成clang编译器的版本下载。
  • 需要使用自带ege、海龟作图、freeglut/glew/glfw、raylib库的用户注意:
    • 请下载带编译器的版本,因为这些库是直接集成在编译器中的。
    • 可直接以单文件方式编译运行使用这些库C/C++程序文件,无需修改编译器设置
    • 如果需要在项目中使用这些库,可以在创建项目时使用小熊猫C++中提供的项目模板
    • 2.23版开始,EGE对应的项目模板由“多媒体”→“Graphics.h”改为“多媒体”→“EGE绘图”
  • Linux下载注意:
    • Debian 11用户请下载-debian11-版本
    • 深度操作系统20版以上用户请下载-deepin20-版本
    • ubuntu 20.04版用户请下载-ubuntu20-版本
    • 可直接在shell中使用sudo apt install “deb文件完整路径"命令安装
    • Linux版本均不包含编译器。在使用apt命令安装时会自动gcc和gdb
  • MacOS下载注意:
    • macos arm二进制包由网友RigoLigo提供
    • 安装包没有签名,下载后需先使用xattr -rc 安装包文件名允许安装
    • 安装包中不包含编译器。需使用homebrew安装gcc编译器
    • 小熊猫C++仅支持gdb调试。因暂无arm版gdb,所以在macos arm版中无法使用调试功能。

三.第一个C++程序

输出"Hello, world!"

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

导入<iostream>头文件,输入输出都能用到

命名空间(否则有些东西不能用)

int main()

开启主函数,别忘加大括号

cout输出"Hello, world!"    endl是换行符

return 0 结束进程

四.输入和输出

1.输入(cin)

        输入单个变量

cin>>变量名;

注:此处需导入<iostream>头文件

        输入多个变量

//输入2个:
cin>>a>>b;         //这里的a,b都是变量名
//输入4个
cin>>a>>b>>c>>d;      //a,b,c,d也都是变量名

总结:先写cin,要输入的每个变量前面都加>>

例题:输入一个数字,再输出它

#include<iostream>      //导入头文件
using namespace std;     //命名空间
int a;                  //需要输入的变量
int main(){             //开启主函数
    cin>>a;             //输入a
    cout<<a;            //输出a(cout下文会讲)
    return 0;           //结束程序
}

2.输出(cout)

        输出单个

cout<<a;      //此处a为变量,可以是int类,也可以是char等

              注意:cin后面加>>    cout的后面是<<

        输出多个

cout<<"ABCDEFG"<<" "<<1234567<<" "<<d;      //d是一个变量
//先输出字符串类型的ABCDEFG,再输出一个空格,然后输出int类型的1234567,输出一个空格,最后输出变量d

总而言之,cout和cin写法很像,一个是>>变量    一个是<<变量(或常量)

不要混淆

五.运算符

1.计算类

        加号+

        很简单,格式:a+b

B=A+5        //将B赋值为A与5的和
A++          //A做自增(自身+1)
A+=7         //同A=A+7

        减号-

B=A-5        //将B赋值为A与5的差
A--          //A做自增(自身-1)
A-=7         //同A=A-7(将A赋值为A-7)
​

        先来个例题

                输入一个整数A和一个整数B,请输出A与B的和 与 A与B的差

#include<iostream>      //导入头文件
using namespace std;     //命名空间
int A,B;                  //需要输入的变量
int main(){             //开启主函数
    cin>>a>>b;             //输入a,b
    cout<<a+b<<endl;       //输出a与b的和(endl是换行符)
    cout<<a-b<<endl;       //输出a与b的差
    return 0;           //结束程序
}

你答对了吗?

        乘号* 

        不是数学中那样了,变成了*

        格式:a*b

b=a*3     //将b设置为a的3倍
a*=3      //和a=a*3相同 ,自己乘3
a+b*c     //乘法优先极高,先算b*c

 你可以使用小括号()  来提高一部分算式的优先级,但在c++中,不论你嵌套多少层括号,都用小括号就行了,中括号和大括号是干别的事的

        除号/

        看过来,除号也和数学中的除号长得不一样了

        而且,这里是/   不是\

b=a/3       //将b设置为a除以3(a的三分之一)
a/=3        //和a=a/3相同,自己除三
//除法的优先级和乘法相同

        别走,有一种特殊情况:余数

        余数如果出现,你直接把它砍掉就行了

        比如:9/2=4

        4...1,砍掉余数,就是4

前方高能,瞪起眼睛好好看,很重要的!

        取余%

        取a除b的余数(很多方面都会用)

        如:27%5=2

        27除5,5余2,所以27%5=2

a%=20      //同a=a%20
//取余优先度也很高

        做个题

题目描述

从键盘读入一个两位的整数n,请求出这个两位整数个位和十位的和是多少?

输入

一个两位的整数n。

输出

一个整数,代表n个位和十位的和。

题目分析 

这个题就需要用到取余了,它的个位,可以%10来完成(仔细想,57%10=7)就是调取个位

十位呢,用除,因为除法正好能把余数吃掉,(想,57/10=5)就是调取十位上的数

是不是非常舒服,C++除法的特点完美的嵌入这个题中(Beautiful!)

        代码

#include <iostream>     //导入头文件
#include <cstdio>
using namespace std;    //命名空间
int n,a,g,s;            //定义变量(n是初始的二位数,a是个,十位之和,g是个位,s是十位)
int main(){             //主函数开启
	cin>>n;             //输入n
	s=n/10;             //按上面方法调取十位
	g=n%10;             //按上面方法调取个位
	a=s+g;              //计算十位与个位之和
	cout<<a<<endl;      //输出结果
	return 0;           //结束程序
}

2.关系运算符

        关系运算符在判断完成后都会返回true或false(布尔值)

        大于>

int a=5;
int b=10;
cout<<(a>b)<<endl;       //a比b小,所以a>b不成立,输出false

        小于<

int a=5;
int b=10;
cout<<(a<b)<<endl;       //a比b小,所以a<b成立,输出true

        等于==

int a=5;
int b=5;
cout<<(a==b)<<endl;       //a和b一样大,所以a==b成立,输出true

        大于等于>=

int a=11;
int b=10;
cout<<(a>=b)<<endl;       //a比b大,所以a>=b成立,输出true

        小于等于<=

int a=12;
int b=10;
cout<<(a<=b)<<endl;       //a比b大,所以a<=b不成立,输出false

        不等于!=

int a=5;
int b=10;
cout<<(a!=b)<<endl;       //a不等于b,所以a!=b成立,输出true

你问括号是干啥的,增加代码可读性(让代码变的好看)

例题又来了

题目描述

从键盘读入一个两个整数a和b,请输出这个两位整数谁大?

输入

两个的整数a,b

输出

a>b 或 a<b 或 a==b

题目分析 

这个题较为复杂,需要我们用到if判断

依次判断三种情况,并输出相应的结果

上文讲到,关系运算符在判断完成后都会返回true或false(布尔值),这就正好对上if的胃口了

if是什么

if在英文中是如果的意思,在C++里,它也是如果的意思,可以判断条件表达式,如结果为true,执行if里面的代码,否则不执行

示例:

if(条件表达式){
    要执行的代码;
}

其实不难. 

代码

​#include <iostream>     //导入头文件
#include <cstdio>
using namespace std;    //命名空间
int a,b;                //定义变量
int main(){             //主函数开启
	cin>>a>>b;          //输入a,b
	if(a>b){
        cout<<"a>b";    //判断a是否大于b
    }
    if(a<b){
        cout<<"a<b";    //判断a是否小于b
    }
    if(a==b){
        cout<<"a==b";    //判断a是否等于b
    }
	return 0;           //结束程序
}

3.逻辑运算符

        下文将会提及到if语句,在那个时候就会用到

        与&&

                同Python中的and,C++里也可以写and

                衔接两个条件表达式

                若结果都为true,返回true

                若有1-2个表达式结果为false,则为false

        或||

                同Python中的or,C++里也可以写or

                衔接两个条件表达式

                若结果都为false,返回false

                若有1-2个表达式结果为true,返回true

        取反(非)  !

                同Python中的not,C++里也可以写not

                取反一个条件表达式

                若结果为true,返回false

                若结果为false,则为true              

                这里先不放例题,下文讲if的时候放

好了各位,今天的C++菜鸟教程就到这里了,点赞收藏

大家也可以在评论区向我提出意见

C++菜鸟教程我两周更新一次,大家再见!

标签:教程,cout,int,菜鸟,cin,C++,输入,下载
From: https://blog.csdn.net/C_User1024/article/details/141183069

相关文章

  • C++头文件<algorithm>中常用函数简介
     概述头文件algorithm(算法库)中主要提供了一些对容器操作的函数,如排序、搜索、复制、比较等,因此使用频率还是很高的,由于主要是操作容器,所以函数的语法也很类似:algorithm_name(container.begin(),container.end(),...);其中,container.begin()和container.end()分......
  • CLR/C++程序找不到DLL最有效方法?
     使用C++17及以上,支持filesystem处理不需要程序集强签名,也不用注册全局程序集缓存,非常有效。#include<iostream>#include<filesystem>usingnamespacestd::filesystem;namespacefs=std::filesystem;//-----------------------------------------------------......
  • 【2025】基于Django的水果商城系统(源码+文档+调试+教程+答疑)
    ......
  • Modern C++——不准确“类型声明”引发的非必要性能损耗
    大纲案例代码地址C++是一种强类型语言。我们在编码时就需要明确指出每个变量的类型,进而让编译器可以正确的编译。看似C++编译器比其他弱类型语言的编译器要死板,实则它也做了很多“隐藏”的操作。它会在尝试针对一些非预期类型进行相应转换,以符合预期,比如《C++拾趣——......
  • python动画教程|Animations using Matplotlib-官网教程程序解读
    随着python学习的深入,我们不可避免进入画图模块matplotlib,也不可避免会遇到制作动画的需求。【1】官网教程如何学习python制作动画,最简单的就是直奔官网:https://matplotlib.org/stable/users/explain/animations/animations.html#animations它给出很长的代码,下面是除引入nu......
  • c++ I/O
    1.flush刷新缓存,endl刷新缓存并换行cout<<"Hello"<<fulsh;cout<<"Wait<<endl;2.hex,oct,dec输出16进制,8进制,10进制cout<<hexcout<<octcout<<dec3.使用width调节宽度cout.width(12);//width函数只影响下一个要显示的item4.使用fill填充字符。C++默认......
  • C++ 标准输入输出 -- <iostream>
    <iostream>库是C++标准库中用于输入输出操作的头文件。<iostream>定义了几个常用的流类和操作符,允许程序与标准输入输出设备(如键盘和屏幕)进行交互。以下是<iostream>库的详细使用说明,包括其主要类和常见用法示例。主要类std::istream:用于输入操作的抽象基类。std::ostre......
  • 【git教程】快速掌握git
    @目录1.本地版本控制1.1在一个目录下建立仓库gitinit1.1.1删除仓库1.2暂存区gitadd1.2.1保存到暂存区1.2.2撤销暂存区文件1.3提交与回退1.3.1提交到版本库gitcommit1.3.2回退gitreset1.4删除1.4.1删除未跟踪的文件gitclean1.4.2删除已跟踪的文件gitrm1.5检查1.......
  • Python 数据结构——二叉树(最最最最最实用的二叉树教程)
    本文章以实用为主,所以不多废话直接开整本文所介绍的二叉树是最基础的二叉树,不是二叉搜索树,也不是平衡二叉树,就基本的二叉树二叉树的创建基本二叉树的创建其实比链表还要简单,只需创建一个节点的类即可,随后用指针将其串起来。不同于链表的是,二叉树为一个父节点连接到两个子节......
  • llamafile本地安装配置并部署及远程测试大语言模型详细实战教程
    ......