初探C++
前言:记录一些在研究代码中看不懂的地方,以前没有接触过c++,记录的都是最基本的东西。
1.ofstream和ifstream
ofstream是从内存到硬盘,写文件,ifstream是从硬盘到内存,读文件
2.插入器和析取器
stream这个类有两个重要的运算符:
插入器(<<)
向流输出数据。
比如cout指的是向显示器输出数据
fout指的是向文件输出数据
析取器(>>)
从流中输入数据。
比如cin指的是从键盘获取数据
3.seekg()和seekp()
C++的文件定位分为读位置和写位置的定位,对应的成员函数是seekg()和seekp()。seekg()是设置读位置, seekp是设置写位置。它们最通用的形式如下:
istream &seekg(streamoff offset,seek_dir origin);
ostream &seekp(streamoff offset,seek_dir origin);
streamoff定义于 iostream.h 中,定义有偏移量 offset 所能取得的最大值,seek_dir 表示移动的基准位置,是一个有以下值的枚举:
ios::beg: 文件开头
ios::cur: 文件当前位置
ios::end: 文件结尾
这两个函数一般用于二进制文件,因为文本文件会因为系统对字符的解释而可能与预想的值不同。例:
file1.seekg(1234,ios::cur); //把文件的读指针从当前位置向后移1234个字节
file2.seekp(1234,ios::beg); //把文件的写指针从文件开头向后移1234个字节
file.seekg(0, std::ios::end);//指向文件结尾
size_t len = file.tellg();//配合上一行求出文件大小为多少字节
file.seekg(0);//指针移动到文件的最前面
4.istringstream buffer(input)
用于将input中的内容按照空格键分割,并保存到buffer中
5.istream_iterator
流对象细分为输入流对象(istream)和输出流对象(ostream),C++ STL 标准库中对应的提供了 2 类流迭代器:
将绑定到输入流对象的迭代器称为输入流迭代器(istream_iterator),其可以用来读取输入流中的数据;
将绑定到输出流对象的迭代器称为输出流迭代器(ostream_iterator),其用来将数据写入到输出流中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通