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

c++ 输入输出笔记

概念:
C++ 语言本身并没有定义输入输出(IO)语句,而是通过标准库(Standard Library)提供了强大的 IO 机制。iostream 库是 C++ 标准库中用于处理输入输出的核心部分。

1. iostream 库简介

iostream 库提供了两个基础类型:

  • istream:输入流,用于从输入设备(如键盘)读取数据。
  • ostream:输出流,用于向输出设备(如屏幕)写入数据。

流(stream)是一个字符序列,表示随着时间的推移,字符从 IO 设备顺序生成或消耗

2. 标准输入输出对象

标准库定义了 4 个常用的 IO 对象:

  1. cin(标准输入):

类型:istream

用途:从用户输入读取数据。

  1. cout(标准输出):

类型:ostream

用途:向屏幕输出数据。

  1. cerr(标准错误):

类型:ostream

用途:输出错误和警告信息。

  1. clog(标准日志):

类型:ostream

用途:输出程序运行时的一般性信息。

这些对象通常与程序运行的窗口关联。

3. 使用 iostream 库

(1)包含头文件
使用 iostream 库需要包含头文件:

#include <iostream>

(2)命名空间
标准库中的名字(如 cout、cin)定义在 std 命名空间中。使用时需要加上 std:: 前缀:

std::cout << "Hello, World!" << std::endl;

(3)输出数据
使用 << 运算符向 ostream 对象写入数据:

std::cout << "Enter two numbers:" << std::endl;

<< 运算符返回其左侧的 ostream 对象,因此可以链式调用。

std::endl 是一个操纵符,用于结束当前行并刷新缓冲区。

(4)输入数据
使用 >> 运算符从 istream 对象读取数据:

int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
>> 运算符返回其左侧的 istream 对象,因此可以链式调用。

4. 示例程序

以下是一个简单的 C++ 程序,提示用户输入两个数并输出它们的和:

#include <iostream>

int main() {
    std::cout << "Enter two numbers:" << std::endl;
    int v1 = 0, v2 = 0;
    std::cin >> v1 >> v2;
    std::cout << "The sum of " << v1 << " and " << v2
              << " is " << v1 + v2 << std::endl;
    return 0;
}

运行结果:

Enter two numbers:
3 7
The sum of 3 and 7 is 10

5. 关键概念

(1)表达式与运算符

  • 表达式(expression)由一个或多个运算对象和运算符组成,用于计算结果
  • << 和 >> 是 C++ 中的流插入和流提取运算符。

(2)缓冲区与刷新

  • 缓冲区(buffer)是内存中的一块区域,用于临时存储数据。
  • std::endl 会刷新缓冲区,确保所有输出立即写入设备。

(3)命名空间

  • 命名空间(namespace)用于避免名字冲突。
  • 标准库中的名字定义在 std 命名空间中。

(4)变量与初始化

  • 变量(variable)用于存储数据。
  • 初始化(initialization)是在变量创建时为其赋值。

6. 调试技巧

  • 在调试时,确保输出语句刷新缓冲区(如使用 std::endl),以避免程序崩溃时输出丢失。 使用 cerr
  • 输出错误信息,因为它不会缓冲,适合调试。

http://www.kler.cn/a/539710.html

相关文章:

  • Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
  • [ Spring ] Integrate Spring Boot Service Monitor Prometheus and Grafana
  • Rust语言进阶之标准输入: stdin用法实例(一百零五)
  • npm与包
  • 深入探究 Go 语言中的 Fx 框架:依赖注入的强大工具
  • 如何避免大语言模型中涉及丢番图方程的问题
  • 流氓软件一键屏蔽免疫工具Baidun Armor v3.2.1 绿色版
  • Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
  • DeepSeek从入门到精通教程PDF清华大学出版
  • 【CubeMX+STM32】SD卡 文件系统读写 FatFs+SDIO+DMA
  • Java语言的区块链
  • kafka服务端之副本
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_version 函数
  • 51单片机俄罗斯方块开机动画
  • 物理信息机器学习(PIML)的基础探讨及技术实现
  • 上传文件防木马函数
  • 【如何掌握CSP-J 信奥赛中的广搜算法】
  • 【每日一题 | 2025】2.3 ~ 2.9
  • Git 功能分支工作流程是如何支持社交化编程
  • 通过案例讲述docker,k8s,docker compose三者的关系
  • springboot005学生心理咨询评估系统
  • nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug
  • 汽车售后诊断软件手机端架构设计
  • STM32自学记录(九)
  • Docker、Ollama、Dify 及 DeepSeek 安装配置与搭建企业级本地私有化知识库实践
  • 【前端】打造自己的hexo博客_hexo一本通