xjznq2010 2014-11-20 15:12 采纳率: 90%
浏览 3020
已采纳

回退字符(ungetc)如何回退多个字符

书上只举了回退一个字符的例子,
另外,“如果回退多个字符,字符数不得超过已读取的个数。”是指什么意思。
如果回退多个字符的话,那么函数的返回值int是什么?

  • 写回答

2条回答 默认 最新

  • save4me 2014-11-21 02:29
    关注

    参考
    ungetc
    ungetc函数

    注意点:
    ungetc 不能连续多次调用。两次 ungetc 调用之间必须至少有一次读操作或者文件指针移动操作(fseek,rewind 等 ) , ungetc 只影响输入流,而不影响与输入流关联的外存文件。对于以二进制方式打开的流,ungetc 会使读指针减 1 ,如果当前位置为 0 ,则减 1 后结果 无法预测。紧跟在fscanf 后面的 ungetc 也可能会失败,因为 fscanf 中就用到了 ungetc。

    Some library implementations may support this function to be called multiple times, making the characters available in the reverse order in which they were put back. Although this behavior has no standard portability guarantees, and further calls may simply fail after any number of calls beyond the first.

    虽然有些类库会支持多次调用这个函数,但是如果代码移植的时候,可能不能保证都能执行成功
    退回的是已读取到的字符,所以退回的字符数不能超过已经读取的。就像你去银行取了100块钱,你要再存进去,只能小于等于100块。
    在标准函数库里面,只能退回一个字符,成功后返回的是退回的字符,如果你的类库支持退回多个,那你需要查看一下你的类库的说明文档。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler