week9_readme
今日c++学习心得
理论课
学习了IO库的相关知识
c++语言不直接处理输入输出,而是通过一组定义在标准库里的类型来处理IO
istream
,ostresm
分别是输入输出流,提供输入输出操作
>>
运算符从istream读取输入,<<
运算符向ostream写入输出
getline
函数从给定的istream读取一行数据,存入一个string对象中,用法是getline(istream,string)
IO类有三个头文件iostream
,fstream
,sstream
,分别定义了读写流、文件、string的类型
此外,三者中都有支持宽字符版本的类型
标准库使我们能忽略不同类型流的差异,是通过继承机制实现的
我们怎样使用cin
,就能怎样使用ifstream
和istringstream
,其他也同理
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道困难
所做题目主要是关于回溯和双指针的