C Primer Plus(第6版)第八章複習題答案

(゚⊿゚)ツ發表於2018-10-02

8.10複習題

  1. putchar(getchar())是一個有效的表示式,它實現了接受一個字元並且輸出
    getchar(putchar())不是一個有效的表示式,因為getchar()不需要引數鴨

  2. a. 列印H
    b. 響一聲警報beep
    c. 列印換行符
    d. 游標向前退一個字元

//設計的命令列如下,在windows下注意要加上檔案字尾名
count.exe < essay.txt > essayct.txt
//因為命令與重定向運算子的順序無關所以還可以這樣寫
count.exe > essayct.txt < essay.txt
a.	essayct < essay	無效,兩個檔案搞什麼 
b. count essay			無效,沒有運算子不知道幹什麼啊
c. essay > count		無效,可執行程式必須放在前面

答:EOF是檔案結尾標記,用來標記檔案結尾,在stdin.h中將其定義為 #define EOF -1,通過鍵盤也可以模擬EOF,UNIX,Linux下是在行首按下組合鍵 Ctrl+D,Windows(DOS)是在任意位置下按下組合鍵Ctrl+Z
最初這曾是作業系統使用的唯一標記,但後來有了用檔案大小來標記檔案結尾,這樣檔案中就可以儲存Ctrl+D了。

a. If you qu
b. HJacrthjacrt	

C如何處理不同計算機系統中的不同檔案和換行規定?
答:C通過標準I/O來消除這種系統差異
書後的答案:C的標準I/O庫把不同的檔案對映為同意的流來同一處理
8.

在使用緩衝輸入的系統中,把數值和字元混合輸入會遇到什麼潛在的問題?
答:數值輸入使用scanf();格式控制來控制輸入,輸入完成將輸入內容傳送至目標處時同時也傳送了換行符,這使得在scanf()後使用getchar會首先讀取在緩衝區中的換行符。scanf()會跳過空格,製表符,和換行符。
如果在使用getchar()之前使用scanf(),因當在getchar()之前新增處理緩衝中的換行符的程式碼。
標準的空白字元(空格、水平製表符或換行符)

相關文章