第 12 章 標準輸入輸出庫
問題列表:
12.1 這樣的代碼有什么問題?char c; while((c = getchar()) != EOF) ...
12.2 我有個讀取直到EOF 的簡單程序, 但是我如何才能在鍵盤上輸入那個“EOF” 呢?
12.3 為什么這些代碼while(!feof(infp)) { fgets(buf, MAXLINE,infp); fputs(buf, outfp); } 把最后一行復制了兩遍?
12.4 我的程序的屏幕提示和中間輸出有時顯示在屏幕上, 尤其是當我用管道向另一個程序輸出的時候。
12.5 我怎樣不等待回車鍵一次輸入一個字符?
12.6 我如何在printf 的格式串中輸出一個’%’?我試過\%, 但是不行。
12.7 有人告訴我在printf 中使用%lf 不正確。那么, 如果scanf() 需要%lf, 怎么可以用在printf() 中用%f 輸出雙精度數呢?
12.8 對于size t 那樣的類型定義, 當我不知道它到底是long 還是其它類型的時候, 我應該使用什么樣的printf 格式呢?
12.9 我如何用printf 實現可變的域寬度?就是說, 我想在運行時確定寬度而不是使用%8d?
12.10 如何輸出在千位上用逗號隔開的數字?金額數字呢?
12.11 為什么scanf("%d", i) 調用不行?
12.12 為什么char s[30]; scanf("%s", s); 不用& 也可以?
12.13 為什么這些代碼double d; scanf("%f", &d); 不行?
12.14 怎樣在scanf() 格式串中指定可變的寬度?
12.15 當我用“%d\n” 調用scanf 從鍵盤讀取數字的時候, 好像要多輸入一行函數才返回。
12.16 我用scanf %d 讀取一個數字, 然后再用gets() 讀取字符串, 但是編譯器好像跳過了gets() 調用!
12.17 我發(fā)現如果堅持檢查返回值以確保用戶輸入的是我期待的數值, 則scanf() 的使用會安全很多, 但有的時候好像會陷入無限循環(huán)。
12.18 為什么大家都說不要使用scanf()?那我該用什么來代替呢?
12.19 我怎樣才知道對于任意的sprintf 調用需要多大的目標緩沖區(qū)?怎樣才能避免sprintf() 目標緩沖區(qū)溢出?
12.20 為什么大家都說不要使用gets()?
12.21 為什么調用printf() 之后errno 內有ENOTTY?
12.22 fgetops/fsetops 和ftell/fseek 之間有什么區(qū)別?fgetops() 和fsetops() 到底有什么用處?
12.23 如何清除多余的輸入, 以防止在下一個提示符下讀入?fflush(stdin)可以嗎?
12.24 既然fflush() 不能, 那么怎樣才能清除輸入呢?
12.25 對某些路徑文件名調用fopen() 總是失敗。
12.26 我想用“r+” 打開一個文件, 讀出一個字符串, 修改之后再寫入, 從而就地更新一個文件?墒沁@樣不行。
12.27 怎樣在程序里把stdin 或stdout 重定向到文件?
12.28 一旦使用freopen() 之后, 怎樣才能恢復原來的stdout (或stdin)?
12.29 怎樣同時向兩個地方輸出, 如同時輸出到屏幕和文件?
12.30 怎樣正確的讀取二進制文件?我有時看到0x0a 和0x0d 混淆了, 而且如果數據中包含0x1a 的話, 我好像會提前遇到EOF。
相關推薦:2010年9月計算機等級考試成績查詢時間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |