- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08输入输出流解读
int x=10; fout.seekp( 20, ios::beg ); fout.write( (const char *)(x), sizeof(int) ); fin.seekg( 0, ios::beg ); fin.read( (char *)(x), sizeof(int) ); 二进制文件读写, 直接写二进制数据, 记事本看未必正确 //下面的程序从键盘输入几个学生的姓名的成绩, //并以二进制, 文件形式存起来 #include iostream #include fstream #include cstring using namespace std; class CStudent { public: char szName[20]; int nScore; }; int main() { CStudent s; ofstream OutFile( “c:\\tmp\\students.dat”, ios::out|ios::binary ); while( cin s.szName s.nScore ) { if( stricmp(s.szName, “exit” ) == 0) break; OutFile.write( (char *) s, sizeof(s) ); } OutFile.close(); return 0; } //名字为exit则结束 输入: Tom 60 Jack 80 Jane 40 exit 0 则形成的 students.dat 为 72字节 用 记事本打开, 呈现: Tom 烫烫烫烫烫烫烫烫Jack 烫烫烫烫烫烫烫蘌 Jane 烫烫烫烫烫烫烫? Note -- 文本文件/二进制文件打开文件的区别: ? 在Unix/Linux下, 二者一致, 没有区别; ? 在Windows下, 文本文件是以 “\r\n”作为换行符 ?读出时, 系统会将0x0d0a只读入0x0a ?写入时, 对于0x0a系统会自动写入0x0d //下面的程序将 students.dat 文件的内容读出并// 显示 #include iostream #include fstream using namespace std; class CStudent { public: char szName[20]; int nScore; }; void main() { CStudent s; ifstream inFile( students.dat, ios::in | ios::binary ); if( !inFile ) { cout error endl; return ; } while( inFile.read( (char* ) s, sizeof(s) ) ) { int nReadedBytes = inFile.gcount(); cout s.szName s.nScore endl; } inFile.close(); } 输出: Tom 60 Jack 80 Jane 40 //看刚才读了多少字节 // 下面的程序将 students.dat 文件的Jane的名// 字改成Mike #include iostream #include fstream using namespace std; class CStudent { public: char szName[20]; int nScore; }; void main() { CStudent s; fstream iofile( “c:\\tmp\\students.dat”, ios::in|ios::out|ios::binary); if ( !iofile ) { cout error ; } iofile.seekp( 2
文档评论(0)