一、格式化输出
输出流操作符:
setw(n),setprecision(digits),setfill(d)需要包含 <iomanip>头文件
操作方法 | 描述 |
---|---|
endl | 行结束插入输出流 |
setw(n) | 下一个输出字段宽度设置为n个字符,小于则用空格填充 |
setprecision(digits) | 输出流精度设置为digits,如果为fixed或scientific模式,digits会指定小数点后数字位数。如果没有设置,digits表示有效数字位数。此性质是持久性的 |
setfill(ch) | 为流设置填充字符(char,要加‘ ’ ),此性质是持久性的 |
left | 输出字段左对齐 ,此性质是持久性的 |
right | 输出字段右对齐 ,此性质是持久性的 |
fixed | 指定浮点数输出完整呈现,且不用科学技术,此性质是持久性的 |
scientific | 指定浮点数以科学计数法呈现,此性质是持久性的 |
二、文件流
fstream库提供两个流类(ifstream和ofstream),C++ 中读写文件的步骤:
-
声明一个指向某个文件的流变量。例如编写程序读取文件输入再输出文件需要声明
ifstream infile;
ofstream outfile; -
打开文件。执行以下方法:
infile.open(“first.txt”); -
传输数据
-
关闭文件。执行以下方法:
infile.close();
流类中的有用方法:
操作方法 | 描述 |
---|---|
stream.fail() | 如果流处于失效状态,返回true |
stream.eof() | 如果流位于文件结尾,返回true,用在fail后 |
stream.clear() | 重置与流相关状态位 |
if(stream)…… | 判断流是否有效 |
stream.open(filename) | 尝试打开filename并加入流中,注意转换为c字符串 filename.c_str() |
stream.close() | 关闭依附于流的文件 |
stream>>variable | 将格式化数据读入变量中 |
stream.get(var) | 将下一个字符读入到字符变量var中 |
stream.get() | 返回流的下一个字符 |
stream.unget() | 复制流的内部指针以便最后读取的一个字符能再次被下一个get调用 |
getline(stream, str) | 将流stream中的下一行读入到字符串变量str中 |
stream<<expression | 将格式化数据写入到一个输出流 |
stream.put(ch) | 将字符ch写入到一个输出流 |
三、字符串流
sstream库提供了将流和字符串值关联起来的能力,包含istringstream类与ostringstream类