1. C++ 程序一般在用户按下回车键时刷新输入缓冲区。 ios
C++ I/O定义了一些类模板,以支持char 和 what_t 数据。使用typedef工具,C++使得这些模板char具体化到能模仿传统的非模板I/O实现。下面是相关类: c++
要使用这些工具,必须使用适当的类对象。例如cin cout。 数据库
2. 重载的<<操做符 函数
<< 默认含义是按位左移操做符,可是ostream类从新定义了<<操做符,方法是将其重载为输出。 工具
在这种状况下,<<叫作插入操做符,而不是左移操做符。插入操做符被重载,使之可以识别C++中多有基本类型。ostream都提供了operator<<() 函数的定义。 编码
例如: ostream & perator<<(int) 表示函数接受一个int参数。 spa
3. write()显示整个字符串,模板原型为: 对象
basic_ostream<charT, traits>& write(const char_type* s, streamsize n); 继承
cout.wirite() 调用cout对象,由于write方法返回一个指向调用它的对象的引用,这里调用它的对象是cout. 索引
write方法并不会在遇到空字符时自动中止打印字符,而只是打印指定数目的字符,即便超过了字符串的边界!
writ()方法也能够用于数值数据,能够将地址强制转换为char*,而后传递给它。
long val = 4545121212;
cout.write((char*) &val, sizeof(long));
4. 刷新缓冲区
缓冲区被填满,程序将flush刷新缓冲区,把内容发出去,并清空缓冲区,以存储新的数据。
一般缓冲区为512字节或其整数倍。
可是,在屏幕输出时,不用等到缓冲区填满,例如将换行符发送到缓冲区,将刷新缓冲区;另外输入即将发生缓冲区刷新。
实际上,控制符也是函数。 例,能够直接调用flush()来刷新cout缓冲区; flush(cout);
5. c++ 将十六进制和八进制都视为无符号的。
6. 使用cin进行输入
cin对象将标准输入表示为字节流。输入流的方法,跳过空白(space, enter, tab),直到遇到非空白字符。即便对于单字符模式,>>操做符将读取一个指定类型的数据。也就是说,它读取从非空白字符开始,到与目标类型不匹配的第一个字符之间的所有内容。
7. 流状态
设置状态
clear() 在输入不匹配或到达文件尾时,须要使用不带参数的clear()从新打开输入。
setstate() 为了输入和输出函数提供一种修改状态的途径。例如:setstate(eofbit)
8. get(char&) 和 get(void) 提供不跳过空白的单字符输入功能。
cin.get(ch)指向istream对象的引用,到达文件末尾时函数返回值,转换为false
cin.get(void)字符编码 int, 到达文件末尾时函数的返回值是EOF
9. 字符串输入:getline() get() ignore()
get()将换行符留在输入流中,这样接下来的输入操做首先将看到换行符;
getline()抽取并丢弃输入流中的换行符。
10. 文件输入和输出
字处理程序建立文件;数据库程序建立和搜索信息文件;编译器读取源代码文件并生成可执行文件。文件自己是存储在某种设备上的一系列字节。
11. 随机存取
随机存取指的是直接移动(不是依次移动)到文件的任何位置。随机存取一般被用于数据库文件,程序维护一个独立的索引文件,该文件指出数据在主数据文件中的位置。
12. cin.get(char)成员函数调用经过返回转换为false的bool值来指出已达到EOF, 而cin.get()成员函数调用则经过返回EOF值来指出已达到EOF,EOF在文件iostream中定义的。