程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-回退字符(ungetc)如何回退多個字符

c語言-回退字符(ungetc)如何回退多個字符

編輯:編程綜合問答
回退字符(ungetc)如何回退多個字符

書上只舉了回退一個字符的例子,
另外,“如果回退多個字符,字符數不得超過已讀取的個數。”是指什麼意思。
如果回退多個字符的話,那麼函數的返回值int是什麼?

最佳回答:


參考
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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved