9输入输出流

简介: 9输入输出流

C++入门——60s从0到1

输入输出流

C++输入输出流是C++标准库中用于输入和输出数据的工具。使用输入输出流可以方便地进行文件的读写、从标准输入输出设备(如键盘和屏幕)读写数据等操作。

 

基本概念

 

C++输入输出流是基于对象的方式进行输入输出的,其中输入流对象用于从输入设备(如键盘)读取数据,输出流对象用于将数据写入输出设备(如屏幕)。C++标准库中提供了cin、cout、cerr和clog四个输入输出流对象。其中,cin表示标准输入流,cout表示标准输出流,cerr表示错误输出流,clog表示带缓冲的错误输出流。

 

基本用法

 

使用C++输入输出流的基本步骤如下:

 

1. 包含头文件:使用输入输出流需要包含iostream头文件。

 

#include <iostream>

 

2. 创建输入输出流对象:使用输入输出流对象前需要先创建它们。在C++中,可以使用全局函数std::cin、std::cout、std::cerr和std::clog来创建这些对象。

 

std::cin; // 创建标准输入流对象

std::cout; // 创建标准输出流对象

std::cerr; // 创建错误输出流对象

std::clog; // 创建带缓冲的错误输出流对象

 

3. 使用输入输出流读写数据:可以使用输入输出流的成员函数(如operator<<和operator>>)来读写数据。例如,可以使用std::cout的operator<<运算符将数据写入标准输出流,使用std::cin的operator>>运算符从标准输入流中读取数据。

 

int a = 10;

std::cout << "a = " << a << std::endl; // 将a的值写入标准输出流

std::cin >> a; // 从标准输入流中读取一个整数并赋值给a

 

3. 格式化输出

 

C++中的格式化输出是指在输出的数据中添加一些特定的字符或符号,以便更好地呈现数据。C++提供了一些控制符来控制输出的格式。例如,可以用“%d”表示输出一个整数,“%.2f”表示输出一个浮点数并保留两位小数,“%s”表示输出一个字符串等。在使用格式化输出时,可以在operator<<运算符中使用这些控制符来指定输出的格式。

 

int a = 10;

float b = 3.14;

std::cout << "a = " << a << ", b = " << b << std::endl; // 使用逗号分隔两个输出项

std::cout << "a = %d, b = %.2f" << std::endl; // 使用%d和%.2f控制符分别表示整型和浮点数的格式

 

文件操作

 

除了从标准设备读写数据外,C++还提供了对文件的读写操作。可以使用文件流来进行文件的读写操作。C++中的文件流类是fstream,它有三个构造函数:fstream(const char* filename, ios_base::openmode mode),fstream(streambuf* sb, const char* filename, ios_base::openmode mode)和fstream(const fstream& file)。其中,filename表示要打开的文件名,mode表示打开文件的模式,它可以是ios_base::in(只读模式)、ios_base::out(只写模式)、ios_base::app(追加模式)等。例如:

 

#include <fstream> // 包含文件流头文件
using namespace std;
ofstream outfile("example.txt"); // 以只写模式打开example.txt文件并将文件指针指向该文件
if (!outfile) { // 如果打开失败则输出错误信息
    cerr << "无法打开文件example.txt!" << endl;
} else { // 如果打开成功则向文件中写入数据
    outfile << "Hello, world!" << endl;
    outfile.close(); // 关闭文件
}
目录
相关文章
|
Shell Linux C语言
【Shell 命令集合 磁盘管理 】Linux losetup命令使用教程 将一个文件或设备与一个回环设备(loop device)进行关联
【Shell 命令集合 磁盘管理 】Linux losetup命令使用教程 将一个文件或设备与一个回环设备(loop device)进行关联
572 0
|
资源调度 Kubernetes Cloud Native
资源调度的最佳实践|学习笔记
快速学习资源调度的最佳实践
862 0
资源调度的最佳实践|学习笔记
|
3月前
|
人工智能 自然语言处理 安全
零成本打造智能服务端:MCP采样的降本增效实践
本文介绍MCP采样机制,突破传统单向调用模式,实现服务器与客户端LLM的双向协作,提升扩展性、降低成本,支持灵活模型选择。通过FastMCP框架,打造高效分布式AI计算架构。
342 8
|
3月前
|
人工智能 编解码 JSON
不看后悔!GitHub 开源 MultiTalk .8k star 强大的人语音+图像绑定项目
MultiTalk 是 GitHub 上的开源项目,具备音频驱动、多人对话视频生成功能。支持多路音频与图像绑定,实现高同步唇动与角色互动,适用于教学、虚拟人及短视频创作,已获 8k 星标。
340 0
|
6月前
|
人工智能 自然语言处理 语音技术
|
8月前
|
SQL 数据采集 分布式计算
深度探索 Dataphin 数据中台的功能与表现
深度探索 Dataphin 数据中台的功能与表现
265 7
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
465 1
|
Kubernetes 测试技术 持续交付
C# 一分钟浅谈:集成测试与系统测试
【10月更文挑战第19天】本文详细介绍了集成测试和系统测试的概念、目的及其在软件开发中的重要性。通过分析常见问题和易错点,结合代码示例,探讨了如何通过代码规范、自动化测试和持续集成等方法提高测试效果,确保软件质量和可靠性。
617 1
|
计算机视觉 Python
Python的三种方式显示图片
Python的三种方式显示图片
307 0