当前位置: 首页 > news >正文

c++学习合集(2025-4-29)

数据输出

cout输出

#include <iostream>          // 引入标准输入输出流库(包含cout/cin等)
using namespace std;         // 使用标准命名空间(避免写std::cout)int main()                    // 程序入口函数(必须有且唯一)
{// 输出 "hello world" 并换行cout << "hello world" << endl;  // 原代码中的 end1 是拼写错误,endl 才是正确的换行操作符// endl = 换行 + 刷新输出缓冲区system("pause");           // 暂停控制台(Windows特有,防止窗口闪退)return 0;                 // 返回退出码0(表示程序正常结束)
}

 跟C语言一样都有一个框架;各个解释如上图;

以下是代码的逐行解释:

```cpp
#include <iostream>          // 引入标准输入输出流库(包含cout/cin等)
using namespace std;         // 使用标准命名空间(避免写std::cout)

int main()                    // 程序入口函数(必须有且唯一)
{
    // 输出 "hello world" 并换行
    cout << "hello world" << endl;  
    // 原代码中的 end1 是拼写错误,endl 才是正确的换行操作符
    // endl = 换行 + 刷新输出缓冲区

    system("pause");           // 暂停控制台(Windows特有,防止窗口闪退)
    return 0;                 // 返回退出码0(表示程序正常结束)
}
```

### 关键概念解析
1. **`#include <iostream>`**
   - 包含C++标准输入输出库,使`cout/cin`等可用
   - 类比:就像告诉编译器"我要用打印机,先接上电源"

2. **`using namespace std`**
   - 直接使用标准库中的名称(如`cout`代替`std::cout`)
   - 争议点:大型项目中可能污染命名空间,但小程序中方便

3. **`cout << ... << endl`**
   - `<<`:流插入运算符(数据流向控制台)
   - `endl`:换行+强制刷新缓冲区(比`\n`更彻底但稍慢)

4. **`system("pause")`**
   - 调用系统命令暂停程序(仅限Windows系统)
   - 替代方案:可用`cin.get()`实现跨平台暂停

### 常见问题
Q1: 为什么要用`return 0`?  
A1: 表示程序正常退出(非0值通常表示错误类型)

Q2: `endl`和`\n`的区别?  
A2: `\n`只换行不刷新缓冲区,`endl`会立即输出内容(性能敏感场景慎用)

Q3: 去掉`system("pause")`会怎样?  
A3: 在IDE中运行时窗口会立即关闭,看不到输出结果(命令行直接运行不受影响)

### 代码执行流程
编译 → 生成exe → 输出"hello world" → 暂停等待按键 → 结束

建议新手尝试:  
1. 去掉`system("pause")`观察现象  
2. 将`endl`改回`end1`看编译报错  
3. 添加新的`cout`语句输出其他内容

//----------------------------------------------------------------------------------------------------------------------//

插入流的理解(也就是那些小于号)

 在输出a=10之后,要是还想输出一个分号的话,那得再用插入流小于号括起来,然后把分号当字符输出;

插入流的用法是,相当于一个箭头,指向的就是要输出的内容

//----------------------------------------------------------------------------------------------------------------------//

数据输入

cin输入

相当于c语言的scanf;

具体格式如下:同时对插入流符号有了深理解,指向变量说明是输入,从变量指出,说明是输出

数据类型 

浮点型

float型:

double型:

科学计数法:

字符型 

转义字符

换行符

字符串 

两种风格

C语言:

C++:

两种都可以使用

布尔类型 

占一个字节的内存大小,他只能表示真假,true为真,本质为1,false为假,本质是0,这个数据类型跟51的bit很像,bit也是只能表示1和0;跟bit感觉没有两样,专门可以用来做标志位;实验得知你也可以对布尔数据赋值,赋值为不为1的数也是可以的,但是他也是只能存储为1,也就是为真,

http://www.xdnf.cn/news/302275.html

相关文章:

  • setup 函数在 Vue 3 中的作用是什么?什么时候会执行
  • ASP.NET Core 中间件
  • git flow
  • 线性回归有截距
  • 电子电器架构 --- 网关ECU中采用多CPU解决方案来实现网关功能
  • 《算法导论(第4版)》阅读笔记:p9-p9
  • NestJS 的核心构建块有哪些?请简要描述它们的作用(例如,Modules, Controllers, Providers)
  • vue3 computed方法使用详细讲解
  • LeetCode 790 多米诺和托米诺平铺 题解
  • 深入解析 Linux/Unix 通信机制:从原理到观测实践
  • 第四章 Java基础-判断和循环
  • I2C总线驱动开发:MPU6050应用
  • 牛客——暴力、技巧、字符与数组的使用(强强联合、字符数量)
  • [三分钟]性能测试工具JMeter入门: 下载安装JMeter并设置中文;JMeter基本使用流程
  • Linux(十四)进程间通信(IPC),管道
  • leetcode0542. 01 矩阵-medium
  • 第八章,STP(生成树协议)
  • [论文阅读]Deep Cross Network for Ad Click Predictions
  • C# 使用SunnyUI控件 (VS 2019)
  • 上市公司-企业上下游供应链数据(2003-2023年)-社科数据
  • 解释 NestJS 的架构理念(例如,模块化、可扩展性、渐进式框架)
  • 【MongoDB篇】MongoDB的事务操作!
  • VBA ListBox/ComboBox 响应鼠标滚轮操作
  • Java中常见的问题
  • Jupyter Notebook为什么适合数据分析?
  • [监控看板]Grafana+Prometheus+Exporter监控疑难排查
  • UE5 使用插槽和物理约束对角色新增的饰品添加物理效果
  • Maven依赖未生效问题
  • Houdini制作烟雾消散并导入UE5
  • UE5 Daz头发转Blender曲线再导出ABC成为Groom