C++【iostream】数据库的部分函数功能介绍

devtools/2025/2/6 4:02:20/

在 C++ 编程世界中,iostream 库扮演着举足轻重的角色,它是 C++ 标准库的核心组成部分,为程序提供了强大的输入输出功能。无论是简单的控制台交互,还是复杂的文件操作,iostream 库都能提供便捷高效的解决方案。本文将深入剖析 iostream 库中的所有函数,通过丰富的代码示例和直观的图片,助你全面掌握这个库的精髓。


iostream 库基础

库的概念与作用

iostream 库是 C++ 标准库中负责输入输出操作的部分。它基于流(stream)的概念,将数据的输入和输出看作是字节流的传输。在 C++ 中,流可以是从输入设备(如键盘)到程序的输入流,也可以是从程序到输出设备(如显示器)的输出流,还可以是程序与文件之间的数据传输流。iostream 库通过一系列的类和函数,让开发者能够方便地处理这些流操作,实现数据的读取和写入。

头文件与包含方式

在使用 iostream 库的功能之前,需要包含相应的头文件。在 C++ 中,iostream 库的主要头文件是<iostream>,使用时只需在源文件开头添加#include <iostream>即可。这行代码告诉编译器,程序将使用<iostream>头文件中定义的类和函数。

基本输入输出函数

cout 与 << 运算符

cout是 iostream 库中用于输出的对象,它代表标准输出流,通常对应着显示器。<<运算符是输出运算符,用于将数据输出到cout流中。例如:

#include <iostream>
int main() {int num = 10;std::cout << "The number is: " << num << std::endl;return 0;
}

在上述代码中,std::cout首先输出字符串 "The number is:",然后通过<<运算符将变量num的值输出,最后输出std::endl,std::endl表示换行并刷新输出缓冲区。

cin 与 >> 运算符

cin是 iostream 库中用于输入的对象,代表标准输入流,通常对应着键盘。>>运算符是输入运算符,用于从cin流中读取数据到变量中。例如:

#include <iostream>
int main() {int num;std::cout << "Please enter a number: ";std::cin >> num;std::cout << "You entered: " << num << std::endl;return 0;
}

这段代码中,程序首先通过cout提示用户输入一个数字,然后使用cin和>>运算符将用户输入的数据读取到变量num中,最后输出用户输入的数字。

getline 函数

getline函数用于从输入流中读取一行字符串。它的原型通常是getline(istream& is, string& str),其中is是输入流对象(如cin),str是用于存储读取到的字符串的变量。例如:

#include <iostream>
#include <string>
int main() {std::string line;std::cout << "Please enter a line of text: ";std::getline(std::cin, line);std::cout << "You entered: " << line << std::endl;return 0;
}

在这个例子中,getline函数从cin中读取一行字符串,包括空格和换行符,存储到line变量中。

格式化输入输出函数

控制符的使用

C++ iostream 库提供了一系列控制符来格式化输入输出。例如,std::setw用于设置输出宽度,std::setprecision用于设置浮点数的精度,std::hex、std::dec、std::oct分别用于设置十六进制、十进制、八进制输出。

#include <iostream>
#include <iomanip>
int main() {int num = 255;double pi = 3.1415926;std::cout << "Hexadecimal: " << std::hex << num << std::endl;std::cout << "Width set to 10: " << std::setw(10) << num << std::endl;std::cout << "Precision set to 4: " << std::setprecision(4) << pi << std::endl;return 0;
}

在这段代码中,std::hex将num以十六进制输出,std::setw(10)设置输出宽度为 10,std::setprecision(4)设置pi的输出精度为 4。

自定义格式化

除了使用预定义的控制符,还可以自定义格式化函数。通过重载std::ostream和std::istream的运算符,可以实现对自定义类型的格式化输入输出。例如,对于一个自定义的Point类:

#include <iostream>
class Point {
public:int x, y;Point(int a, int b) : x(a), y(b) {}
};
std::ostream& operator<<(std::ostream& os, const Point& p) {os << "(" << p.x << ", " << p.y << ")";return os;
}
int main() {Point p(3, 4);std::cout << "The point is: " << p << std::endl;return 0;
}

在这个例子中,重载了operator<<运算符,使得Point对象可以按照自定义的格式输出。


http://www.ppmy.cn/devtools/156446.html

相关文章

【Qt】06-对话框

对话框 前言一、模态和非模态对话框1.1 概念1.2 模态对话框1.2.1 代码QAction类 1.2.2 模态对话框运行分析 1.3 非模态对话框1.3.1 代码局部变量和成员变量setAttribute 类 1.3.2 现象解释 二、标准对话框2.1 提示对话框 QMessageBox2.1.1 现象及解释 2.2 问题对话框2.2.1 现象…

使用线性回归模型逼近目标模型 | PyTorch 深度学习实战

前一篇文章&#xff0c;计算图 Compute Graph 和自动求导 Autograd | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 使用线性回归模型逼近目标模型 什么是回归什么是线性回归使用 PyTorch 实现线性回归模型代码执行结…

快速上手mybatis教程

基础知识 MyBatis 是一款优秀的持久层框架&#xff0c;其核心组件主要包括以下部分&#xff1a; SqlSession 作用&#xff1a;SqlSession 是 MyBatis 的核心接口&#xff0c;负责与数据库进行通信&#xff0c;执行 SQL 语句&#xff0c;并返回查询结果。它是 MyBatis 的一次会…

解决open-webui报错Couldn‘t find ffmpeg or avconv

启动open-webui的时候报错Couldnt find ffmpeg or avconv 具体内容&#xff1a; INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2 E:\py311\Lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldnt find ffmpeg or avconv - d…

Vue指令v-html

目录 一、Vue中的v-html指令是什么&#xff1f;二、v-html指令与v-text指令的区别&#xff1f; 一、Vue中的v-html指令是什么&#xff1f; v-html指令的作用是&#xff1a;设置元素的innerHTML&#xff0c;内容中有html结构会被解析为标签。 二、v-html指令与v-text指令的区别…

Ubuntu下Tkinter绑定数字小键盘上的回车键(PySide6类似)

设计了一个tkinter程序&#xff0c;在Win下绑定回车键&#xff0c;直接绑定"<Return>"就可以使用主键盘和小键盘的回车键直接“提交”&#xff0c;到了ubuntu下就不行了。经过搜索&#xff0c;发现ubuntu下主键盘和数字小键盘的回车键&#xff0c;名称不一样。…

Netty线上如何做性能调优?

大家好&#xff0c;我是锋哥。今天分享关于【Netty线上如何做性能调优&#xff1f;】面试题。希望对大家有帮助&#xff1b; Netty线上如何做性能调优&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Netty是一个高性能的网络通信框架&#xff0c;广泛应…

【阅读笔记】LED显示屏非均匀度校正

一、背景 发光二极管&#xff08;LED&#xff09;显示屏具有色彩鲜艳、图像清晰、亮度高、驱动电压低、功耗小、耐震动、价格低廉和使用寿命长等优势。LED显示图像的非均匀度是衡量LED显示屏显示质量的指标&#xff0c;非均匀度过高&#xff0c;会导致LED显示图像出现明暗不均…