C++ Exercises(九)

阅读: 评论:0

C++ Exercises(九)

C++ Exercises(九)

<<C++ Primer>>第三版P905页的这个程序有很多问题想不明白: #include <iostream> #include <fstream> using namespace std;
int main() { fstream inOut( "D:\copy.out", ios_base::in|ios_base::app); int cnt=0; char ch; inOut.seekg(0); while ( ( ch ) ) { cout.put( ch ); cnt++; if ( ch == 'n' ) { streamoff  mark = llg();// 标记当前位置 inOut << cnt << ' '; inOut.seekg( mark ); // 恢复位置 } } inOut.clear(); inOut << cnt << endl; cout << "[ " << cnt << " ]n"; return 0; }
用下面的数据进行测试: abcd efg hi j

分别保存为和copy.out,运行结果: abcd efg hi [ 12 ]
后来我想可能是因为不是读的二进制的缘故,所以我改为: fstream inOut( "D:\", ios_base::in|ios_base::app|ios_base::binary);

分别进行测试后,结果就更奇怪了。 这是的: abcd efg hi [ 15 ]

这是copy.out的: abcd efg j [ 18 ] 这到底是为什么呢?

本文转自Phinecos(洞庭散人)博客园博客,原文链接:.html,如需转载请自行联系原作者

本文发布于:2024-02-01 09:06:43,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674960335534.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Exercises
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23