今日c++学习心得

理论课

学习了IO库的相关知识
c++语言不直接处理输入输出,而是通过一组定义在标准库里的类型来处理IO
istream,ostresm分别是输入输出流,提供输入输出操作
>>运算符从istream读取输入,<<运算符向ostream写入输出
getline函数从给定的istream读取一行数据,存入一个string对象中,用法是getline(istream,string)
IO类有三个头文件iostream,fstream,sstream,分别定义了读写流、文件、string的类型
此外,三者中都有支持宽字符版本的类型
标准库使我们能忽略不同类型流的差异,是通过继承机制实现的
我们怎样使用cin,就能怎样使用ifstreamistringstream,其他也同理
IO对象不能进行拷贝和赋值,进行IO操作的函数通常以引用形式传递和返回流
iostate提供了表达条件状态的完整功能
goodbit,badbit,failbit是记录在一个位集合里的,函数通过位运算来查询
endl,flush,ends都可以刷新缓冲区,区别是endl附加换行,ends附加空字符,flush不附加字符
还可以通过cout << unitbuf指定每次都刷新缓冲区
创建文件流对象时,如果提供了文件名,open会自动被调用,打开文件并绑定到文件流对象上
文件流已经打开,就保持与对应文件的关联,要想关联到另一个文件,必须先关闭已经关联的文件
在循环函数体内部定义的流对象会自动构造与析构,与之关联的文件自动关闭
文件模式包括in(读),out(写),app(追加),ate(打开定位尾部),trunc(截断),binary(二进制)
没有指定trunc,以out模式打开的文件也会被截断,输出流只有以app模式打开,才能保留原有内容
对文件逐行读取,逐个单词操作时,可以结合fstream和sstream,文件->fstream>>string->sstream

实践课

复习了本学期已学的内容
完成了与IO操作有关的三道编程题

本周leetcode刷题记录

本周完成了34题,包括13道简单,17道中等,4道困难
所做题目主要是关于回溯和双指针的
力扣刷题记录
力扣刷题记录