c13-文件流基础

本文介绍C++中文件操作的基本方法,包括读取字节数、指定输出宽度及格式控制等,并探讨了异常处理机制。此外还涉及了内部类的概念及使用。

1.fin.gcount();读取到的字节数

2.fin.read((char*)地址, 字节数); 不会自动加'\0'

3.fin.eof();是否读到文件末尾,end of file

4.width(1),指定小时按实际宽度输出,一次性,只对下一个输出有效

5.fill('*');永久有效:cout.width(10); cout.fill('*'); cout<<123<<endl;

6.输出格式控制符:cout<<wf(10, '*')<<100<<endl;

 

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class wf
{
	int w;
	char f;
public:
	wf(int w, char f):w(w), f(f){}
	friend ostream& operator<<(ostream&, const wf&);
};
ostream& operator<<(ostream& os, const wf& w)
{
	os.width(w.w);
	os.fill(w.f);
	return os;
}
int main()
{
	cout<<wf(10, '*')<<100<<endl;
	system("pause");
	return 0;
}


7.cout.precision(8);控制精度,最后一位四舍五入

 

8.cout.setf(ios::left); right, dec(10), oct(8), hex(16), showbase(前缀),showpoint(总是带小数点), uppercase(大写0X, A-F, E), showpos(positire带符号),scientific(科学计数法5.168E-6)

9.cout默认6位输出

10.cout.precision(2); cout.setf(ios::fixed); 小数点后精度

11.unsetf(ios::xx); 取消设置

12.使用cout.set(ios::hex),要cout.unsetf(ios::dec|ios::oct);

13.endl = \n + flush;cout<<flush;

14. 格式控制符都可以使用cout<<oct|dec|hex<<i<<endl;

15.格式控制函数对应的格式控制符<iosmanip> cout<<setw(宽度); cout<<setfill('*'); cout<<setprecision(8); 

16.ofstream.fout(filename); 默认清除文件中的原有内容

17.fout(filename, ios::out(默认-写));可用ios::app追加,ios::binary二进制打开文件

18.win中以文本方式打开文件而不是二进制打开文件时,写'\n'时改为'\r''\n',读到'\r''\n'时改为'\n'。

19.fout.seekp(位置int);写put。fin.seekg(位置int);读get。

20.取得当前读位置fin.tellg();当前写位置fout.tellp();

21.读写打开文件fstream fio(filename, ios::in|ios::out|ios::binary);类继承关系 istream->ifstream, ostream->ofstream, istream/ostream->iostream->fstream。

22.内部类:成员内部类、局部内部类,作用域有限。①隐藏名字,避免类名冲突②通过提供统一内部类名来统一各个类的操作方法

23.成员内部类使用:

 

class A{
public:
   class B{};
};

int main()
{
   A::B b;
}


24.try{throw 变量;} catch(变量类型){} catch (变量类型){}

 

25.如果没有catch能够处理,退出不处理后面内容

26.catch(...){}接收任何类型

27.typedef int T; struct Node{T date; Node *next;};

28.基本类型() = 0;

 

```mermaid flowchart TD A[C++ 基础语法] --> B[基本元素] A --> C[数据类型] A --> D[运算符] A --> E[控制流语句] A --> F[函数] A --> G[输入输出] B --> B1[关键字] B --> B2[标识符] B --> B3[常量] B --> B4[变量] B1 --> B11[数据类型关键字] B1 --> B12[控制流关键字] B1 --> B13[存储类关键字] B2 --> B21[命名规则] B2 --> B22[作用域] B3 --> B31[整数常量] B3 --> B32[浮点常量] B3 --> B33[字符常量] B3 --> B34[字符串常量] B4 --> B41[变量声明与定义] B4 --> B42[变量初始化] B4 --> B43[变量作用域和生命周期] C --> C1[基本数据类型] C --> C2[复合数据类型] C --> C3[指针] C --> C4[引用] C1 --> C11[整型] C1 --> C12[浮点型] C1 --> C13[字符型] C1 --> C14[布尔型] C2 --> C21[数组] C2 --> C22[结构体] C2 --> C23[联合体] C2 --> C24[枚举] C21 --> C211[一维数组] C21 --> C212[多维数组] C22 --> C221[结构体定义] C22 --> C222[结构体成员访问] C3 --> C31[指针声明与初始化] C3 --> C32[指针运算] C3 --> C33[指针与数组] C3 --> C34[指针与函数] C4 --> C41[引用声明与初始化] C4 --> C42[引用作为函数参数] D --> D1[算术运算符] D --> D2[关系运算符] D --> D3[逻辑运算符] D --> D4[位运算符] D --> D5[赋值运算符] D --> D6[条件运算符] D --> D7[其他运算符] E --> E1[条件语句] E --> E2[循环语句] E --> E3[跳转语句] E1 --> E11[if 语句] E1 --> E12[switch 语句] E11 --> E111[简单 if 语句] E11 --> E112[if - else 语句] E11 --> E113[if - else if - else 语句] E2 --> E21[for 循环] E2 --> E22[while 循环] E2 --> E23[do - while 循环] E3 --> E31[break 语句] E3 --> E32[continue 语句] E3 --> E33[return 语句] F --> F1[函数定义与声明] F --> F2[函数参数传递] F --> F3[函数重载] F --> F4[递归函数] F --> F5[内联函数] F2 --> F21[值传递] F2 --> F22[引用传递] F2 --> F23[指针传递] G --> G1[标准输入输出流] G --> G2[文件输入输出] G1 --> G11[cin 对象] G1 --> G12[cout 对象] G1 --> G13[格式化输入输出] G2 --> G21[文件打开与关闭] G2 --> G22[文件读写操作] ``` 把这个mermaid,转化生成思维导图
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值