《C++ Primer 5th》读书笔记5---重读IO标准库

2024-05-05 16:08

本文主要是介绍《C++ Primer 5th》读书笔记5---重读IO标准库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

其实我也想吐槽一下这个标准库。

就理解这个IO方向就搞地很麻烦。

1.#include <iostream>基本输入输出流

这个就我的使用来说,就是表示标准输入(cin),标准输出(cout),或者它们的引用。

方向:cin是一个流对象,与键盘来的数据默认绑定。cout是一个流对象,与去向屏幕或者说终端的数据默认绑定。

把内存当做中心,从键盘输入到内存,就叫做in。

                                从内存输出到屏幕,就叫做out。


注意:IO对象不能拷贝或者复制


2.#include <fstream>文件流

这个文件不是linux下面的任意外部设备的含义,而就是正常文件的含义。

方向:

把内存当做中心,从文件读取数据到内存,就叫做in。

                                从内存写出数据到文件,就叫做out。


注意:创建流对象并指定其关联的文件,即给出文件名的时候,可以有两种方式。

①使用string对象。

②使用C风格字符数组。


3.#include <sstream>字符串流

类似于文件流,字符串流就是说绑定了一个字符串的流,而这个字符串,可以是给出的,也可以像ofstream一样没有就建立。

方向:

这个就需要参考文件流了。

先把被绑定的字符串看做被绑定的文件,然后还是以内存为中心,

从绑定字符串读取数据到内存,就叫做in。

从内存往被绑定字符串添加数据,就就走out。


注意:P287说的istringstream的使用条件

当我们的工作是对整行文本进行处理,而其他一些工作是处理行内的单个单词时,通常可以使用istringstream。

即,我们将整行的一个string当做一个istingstream对象,每次的>>就是针对一个单词的。


4.#include <string> std::getline



这篇关于《C++ Primer 5th》读书笔记5---重读IO标准库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962104

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程