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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog