亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3355 | 回復: 2
打印 上一主題 下一主題

[C] 關于K&R 5.3節(jié)中 getint的疑問 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-01-03 01:19 |只看該作者 |倒序瀏覽
很久不用C了 下學期有門課會遇到C 所以重讀K&R復習一下


在5.3節(jié)的最后給出了一個getint的例子

我其實不明白一點

它其中
  1. if ( ! isdigit (c) && c != '+' && c != '-' && c != EOF) {

  2. ungetch(c);
  3. return 0;
  4. }
復制代碼
當遇到非數(shù)字字符時候把那個非數(shù)字字符壓進buf里面

那樣下次再調(diào)用getint不是又讀到這個非數(shù)字字符么


這樣一來 不是永遠讀不到 這個非數(shù)字字符后面后面的內(nèi)容了么


還有 在前面一頁 他說這個getint會被用在 讀取流中數(shù)據(jù)  然后存放到一個數(shù)組中
  1. for (n=0;n<SIZE && getint(&array[n]) !=EOF;n++)
復制代碼
如果碰到流里面有字母之類的 那么根據(jù)getint的代碼 它直接就返回0 并且對當次的array[n]不做任何操作
那樣導致的結果是 數(shù)組中有的項是未定義的  


誰能解釋一下呢?

論壇徽章:
0
2 [報告]
發(fā)表于 2011-01-03 08:16 |只看該作者
就像你的描述一樣,那種的確是會造成一種缺陷狀態(tài)的輸入了。

論壇徽章:
0
3 [報告]
發(fā)表于 2011-01-03 11:21 |只看該作者
那樣 他在前一頁里面提到的 那個for循環(huán)
如果遇到輸入流里面含有字母 比如像1a22b333
這樣的 只能獲取"1"了么
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP