利用ascall generator创造字符画,并让字符画在控制台显示特定内容 遇到的问题与解决方法

需求1:想利用同一个ifstream输入流对象a进行反复输出

问题1:输入流对象在a在输出一次后就没反应了。

解决办法使用a.clear()函数更新a对象的状态

如果忽略 clear 的调用,则循环只能读入第一个文件。要了解其原因,就
需要考虑在循环中发生了什么:首先打开指定的文件。假设打开成功,则读取文
件直到文件结束或者出现其他错误条件为止。在这个点上,input 处于错误状态。
如果在关闭(close)该流前没有调用 clear 清除流的状态,接着在 input 上
做的任何输入运算都会失败。一旦关闭该文件,再打开 下一个文件时,在内层
while 循环上读 input 仍然会失败——毕竟最后一次对流的读操作到达了文件
结束符,事实上该文件结束符对应的是另一个与本文件无关的其他文件。
如果程序员需要重用文件流读写多个文件,必须在读另一个文
件之前调用 clear 清除该流的状态。

需求2:想在文件的任意位置读取字符画进行输出到控制台

问题2:无

解决方法:利用ifstream的文件定位指针seekg函数。
文件定位指针 读指针.
为了顺序地从文件中取得数据,程序一般从文件起始位置开始连续地读取所有数据,直到找到所需要的数据为止。在程序的执行过程中,有可能需要顺序地读取文件好几遍(从件起位置开始)。ifsteam和 ostream都提供了成员函数来重定文件定位指针(文件中下一个被读取或写人的字节号)。在isteam中&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值