文档详情

【c++】第二章 文件.ppt

发布:2018-05-11约1.09万字共54页下载文档
文本预览下载声明
* #include iostream.h #include fstream.h #include ctype.h #include stdlib.h void main(void) { ifstream inFile; ofstream outFile(out.txt); char fileName[81], ch, ch2; cout 请输入文件名: ; cin fileName; inFile.open(fileName); * if (!inFile) { cout 打开失败 fileName endl; exit(0); } inFile.get(ch); while(! inFile.eof ( )) { ch2 = toupper(ch); outFile.put(ch2); inFile.get(ch); } inFile.close( ); outFile.close( ); } * 2.15 二进制文件 二进制文件中存储的数据是非格式化的,按照在内存中存储的形式存储,不是按照ASCII纯文本方式存储。 Example: ofstream file(num.dat); int x = 1297; file x; 存储形式是: 1 , 2 , 9 , 7 . * 2.15 二进制文件 以二进制方式打开文件: file.open(stuff.dat, ios::out | ios::binary); Note: 缺省情况下文件是以文本方式打开. 读/写函数: file.write ((char *)buffer, sizeof (buffer)); file.read ((char *)buffer, sizeof (buffer)); Example: Program 2-18. * #include iostream.h #include fstream.h #include iomanip.h void main(void) { fstream file; int buffer[10] = {1,2,3,4,5,6,7,8,9,10 },a[10]; * // 创建一个二进制文件 file.open(a1.txt, ios::out|ios::binary); file.write ((char*)buffer, sizeof (buffer)); file.close( ); file.open(a1.txt, ios::in|ios::binary); file.read ((char*)a, sizeof(a)); for(int count = 0; count 10; count++) cout setw(6)a[count]; file.close( ); * // 创建一个文本文件 file.open(a2.txt, ios::out); for(int i = 0; i 10; i++) filebuffer[i]; file.close( ); } 思考:每个文 件的大小? * 2.16 读写结构体记录 结构体数据可以采用定长块存储到文件中 Note: 因为结构体包含不同类型的数据,所以当打开文件时必须以二进制方式打开。 Example: Program 2-19 . * #include iostream.h #include fstream.h #include ctype.h #include stdlib.h struct Info { int age; char name[51]; }; void inputInfo( ); void outputInfo( ); void main(void) { inputInfo( ); outputInfo( ); } * void inputInfo( ) { fstream people; Info person; char again; people.open(people.dat, ios::out|ios::binary); if (!people) { cout 文件打开失败!
显示全部
相似文档