数据结构与算法实习 补充2: IOStrea 北京大学信息科学技术学院 主讲:张铭、郝丹 zhang [at] net. pku. edu.cn http://www.ipk.pku.edu.cn/pkujpk/course/sig/shixi/ 20|8 张铭赵海燕王腾蛟宋国杰,《教据结构与算法实验教 程》(国家十一五规划教材),高教社20年|月
数据结构与算法实习 ——补充2:IOStream 北京大学信息科学技术学院 主讲:张 铭、郝 丹 mzhang [at] net.pku.edu.cn http://www.jpk.pku.edu.cn/pkujpk/course/sjjg/shixi/ 2011.8 张铭 赵海燕 王腾蛟 宋国杰,《数据结构与算法实验教 程》(国家十一五规划教材),高教社2011年1月
C++的流( Stream) C+中的流,实际上是一个字节序列 输入操作—一字节从输入设备(如键盘 磁盘、网络连接等)流入内存 输出操作—一字节从内存流向某个输出设 备(如显示器、打印机、磁盘、网络连接 ·输入输出流库( IOstream Library),使 用流( stream)实现各种I/0操作
C++中的流(Stream) • C++中的流,实际上是一个字节序列。 • 输入操作——字节从输入设备(如键盘、 磁盘、网络连接等)流入内存 输出操作——字节从内存流向某个输出设 备(如显示器、打印机、磁盘、网络连接 等) • 输入输出流库(IOstream Library),使 用流(stream)实现各种I/O操作
C++ IOstream Library os base istream ifstream istringstream cIn lOS fstream iostream stringstream ofstream ostream ostringstream cout, cerr, clog streambuf filebuf stringbuf From:http://www.cplusplus.com/reference/
C++ IOstream Library ios_base ios istream iostream ostream streambuf cin cout,cerr,clog ifstream fstream ofstream filebuf istringstream stringstream ostringstream stringbuf From: http://www.cplusplus.com/reference/
C++ IOstream Library stan daro Input Stream vo Stream ios base Istream ifs tream Istringstream lOS fstream lostrea ringstream ofstream ostream ostringstream cout,cerr, clog streambuf filebuf stringbuf Base class Base buffer Output File vo Stream String Stream Class Stream From:http://www.cplusplus.com/reference/
C++ IOstream Library ios_base ios istream iostream ostream streambuf cin cout,cerr,clog ifstream fstream ofstream filebuf istringstream stringstream ostringstream stringbuf From: http://www.cplusplus.com/reference/
IO操作符 输出操作符号:重载的左移操作符(2、输入操作符号:重载的右移操作符(>) a表示将流中数据放入a对象中,如cin>a
IO操作符 ➢ 1、输出操作符号:重载的左移操作符(>) >>a表示将流中数据放入a对象中,如cin>>a
iostream库定义的三个标准流对象 cin,表示标准输入( standard input)的 istream类对 象。cin使我们可以从设备读入数据。 丶cout,表示标准输出( standard output)的 ostream类 对象。cout使我们可以向设备输出或者写数据 cerr,表示标准错误( standard error)的 ostream类对 象。cerr是导出程序错误消息的地方,它只能允许向 屏幕设备写数据
iostream库定义的三个标准流对象 cin,表示标准输入(standard input)的istream类对 象。cin使我们可以从设备读入数据。 cout,表示标准输出(standard output)的ostream类 对象。cout使我们可以向设备输出或者写数据。 cerr,表示标准错误(standard error)的ostream类对 象。cerr是导出程序错误消息的地方,它只能允许向 屏幕设备写数据
StandIo Example #include"stdafx. h #include #include using namespace std int main(int argc, TCHAR*argyI string in g strins 8 Plz enter you name: JOY cout>in string if(in string. empty cerr<<" error: input string is empty! In else cout<< hello, <<in string <<!n return 0:
StandIO Example #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string in_string ; cout>in_string; if(in_string.empty()) cerr<<"error:input string is empty!\n "; else cout<<“hello, ”<<in_string<<“!\n"; return 0; } Plz enter you name:JOY hello, JOY! Press any key to continue . .
C++的文件流操作 可以创建的文件流包含: 输入文件流: ifstream ifs(“ filename”, ios base:in); 输出文件流: ofstream ofs(“ filename”, ios base:out) 输入输出文件流 fstream fs fs. open("filename", ios base: in ios base: out
C++的文件流操作 可以创建的文件流包含: 输入文件流: ifstream ifs(“filename”,ios_base::in); 输出文件流: ofstream ofs(“filename”,ios_base::out); 输入输出文件流: fstream fs; fs.open(“filename”,ios_base::in|ios_base::out)
fstream constructor fstream (; explicit fstream( const char* filename, ios base: openmode mode ios base: in ios base: out ) Parameters filename 要打开的文件名。 ) mode 打开模式, ios base; openmode的一些枚举的组合
fstream constructor fstream ( ); explicit fstream ( const char * filename, ios_base::openmode mode = ios_base::in | ios_base::out ); Parameters filename 要打开的文件名。 mode 打开模式,ios_base::openmode的一些枚举的组合
OpenMode app,追加模式,每次输出操作前,指针都会移到文件末尾 ate,追加模式,开始时数据流指向文件的尾部 使用方法:ios: nios:: outlios:ate 简单ios:ate会清空原来的文件; binary,以二进制模式打开文件,默认的是以文本模式打开。 in,输入模式。 out,输出模式。 丶 trunc,如果文件不存在,则创建新文件。默认是不创建的。 如果文件存在,则清空其内容 可以用“或”把以上属性连接起来,如ios: outios: binary
OpenMode app,追加模式,每次输出操作前,指针都会移到文件末尾。 ate,追加模式,开始时数据流指向文件的尾部。 使用方法:ios::in|ios::out|ios::ate 简单ios::ate会清空原来的文件; binary, 以二进制模式打开文件,默认的是以文本模式打开。 in, 输入模式。 out,输出模式。 trunc, 如果文件不存在,则创建新文件。默认是不创建的。 如果文件存在,则清空其内容。 可以用“或”把以上属性连接起来,如ios::out|ios::binary