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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题