1.C++的输入/输出有标准库提供,标准库定义了一组类型。支持对文件和控制窗口等设备的读写(IO);
2.getline()函数,istream对象读取写入string中
3.iostream(istream(从流中读取) ostream(写到流中去) 继承而来)定义读写控制窗口类型 fstream定义读写已命名文件的类型 sstream定义类型是读取存储在内存中的string对象
4.每个IO头文件都定义了char和wchar_t类型和标准的输入输出对象
5.只有支持复制的元素类型可以存贮在容器中
*6.形参或者返回类型也不能为流类型。如果需要传递或者返回IO对象,则必须传递或者返回指向该对象的指针或者引用。
7.条件状态IO管理缓冲区机器流状态的相关内容。P247
8.3
8.操纵符 最好使用unitbuf//执行完写的操作都刷新流
cout<<"Isss = "<<flush; //刷新流,不在流中添加任何数据
cout<<"Istring = "<<endl; //换行
cout<<"Sstring = "<<ends; //在缓冲区中插入null,然后刷新它
9.程序崩溃了不会刷新缓冲区。多用endl会解决这一问题
10.输入输出绑定在一起 cin.tie(&cout) cin.tie(0)打破他们之间的绑定
8.4
11.fstream 定义了自己的新操作,close,open打开相应的文件名。参数是c风格的字符串,不是标准库string类型
char ch;
while (cin.get(ch))
cout.put(ch);
cout << endl;
8.5字符串流
1. cout << "default bool values: "
<< true << " " << false
<< "\nalpha bool values: "
<< boolalpha
<< true << " " << false
<< endl; // boolalpha 可是使bool类型按照false 或者true输出。但是默认的是noboolalpha 1或者0输出
const int ival = 15, jval = 1024; // const, so values never change
cout << "default: ival = " << ival
<< " jval = " << jval << endl;
cout << "printed in octal: ival = " << oct << ival //8八进制
<< " jval = " << jval << endl;
cout << "printed in hexadecimal: ival = " << hex << ival //16禁止
<< " jval = " << jval << endl;
cout << "printed in decimal: ival = " << dec << ival //10进制
<< " jval = " << jval << endl;
{
const int ival = 15, jval = 1024; // const so values never change
cout << showbase; // show base when printing integral values
cout << "default: ival = " << ival
<< " jval = " << jval << endl;
cout << "printed in octal: ival = " << oct << ival
<< " jval = " << jval << endl;
cout << "printed in hexadecimal: ival = " << hex << ival
<< " jval = " << jval << endl;
cout << "printed in decimal: ival = " << dec << ival
<< " jval = " << jval << endl;
cout << noshowbase; // reset state of the stream
}
cout << uppercase << showbase << hex //16进制的按照大写的输出 默认为小写
<< "printed in hexadecimal: ival = " << ival
<< " jval = " << jval << endl
<< nouppercase << endl;
2. cin>>noskipws 可以读取空格
3. cin >> skipws;
cout << 10.0 << endl; // prints 10
cout << showpoint << 10.0 // prints 10.0000
cout << noshowpoint << endl; // revert to default handling of decimal point
cout << 10.0 << endl; // prints 10
4.文件模式 binary 二进制的形式进行IO操作| ate定位文件尾部 | in 读| out 写|trunc 打开时清空 | app保存原有数据在后面添加数据
in && out时不清空
out 清空