本題是c primer plus(5版)第8章程式設計題第一道題,題目如下:
從題述來看,有如下幾個關鍵點:
有這麼乙個文字檔案
讀入檔案中的文字
統計檔案中字元數
判斷檔案的結尾
以上4點都做到了,此題解完。那麼,這4步的每一步該如何解決呢?
1. 有這麼乙個文字檔案
這個好解決,事先建立好乙個文字檔案,裡面準備一些字元。我事先準備好了乙個文字檔案,author.txt
2. 讀入檔案中的文字
這是要解決的第乙個關鍵點。要讀檔案,必須得將檔案作為程式的輸入,解決方法有兩個:
1) 使用fopen等函式
這一方法的基本思路是:
a) 使用fopen函式開啟乙個檔案,使得檔案作為程式的輸入
b) 使用getc等函式讀取檔案中的字元
c) 使用fclose等函式關閉檔案
2) 使用重定向
這一方法使用輸入重定向技術,使得stdin標準輸入重定向到檔案,而不是鍵盤。相比上乙個方法,**上要簡單的多。本程式採用的是這種方法。
3. 統計檔案中字元數
這個好解決,準備乙個計數器。第2步中,每讀入乙個字元,計數器加1.
4. 判斷檔案的結尾
這是要解決的第二個關鍵點,即,如何判斷讀取已經到了檔案末尾。
在c中,針對不同的系統,統一以乙個「eof」來表示檔案的末尾。這個「eof」如果你去看它的定義,可能是乙個整數值,比如「-1」。不少的i/o函式,如getchar(),遇到檔案末尾後就會返回「eof」。本程式採用了這個技術點。
無根據上述分析,核心**如下:
while( (ch = getchar()) != eof )
**使用了getchar函式,每次從檔案中讀入乙個字元,如果不是檔案末尾的話,則輸出當前字元,並且計數器加1。如果到達了檔案結尾,則退出迴圈。
執行本程式時,在命令列視窗執行。
如果你開啟文字檔案,去乙個個數字元的話,你會發現只有95個字元,為何執行結果卻輸出97個字元?
這是因為文字檔案中還包含了兩個你看不見的字元,就是換行符了,文字檔案中包含了2個換行符。
這道題先這樣了,有疑問的可以一起討論。
node 重定向 express 重定向
服務端重定向對非同步請求無效 如何通過伺服器讓客戶端重定向 1.狀態碼設定為302 臨時重定向,301永久重定向 瀏覽器會記住 當再次請求相同位址的時候,瀏覽器不會重新請求該位址,會直接跳轉上一次請求該位址時的重定向位址 res.statuscode 2.在響應頭中通過 location 告訴客戶端...
輸入重定向,正確輸出重定向,錯誤輸出重定向
一 標準輸入 stdin a.輸入重定向 標準輸入 作用 將原先鍵盤輸入的內容改由檔案內容代替 root wenwen cat test.txt asdas asdas asdas 按crtl d 退出 將network內容匯入到test.txt中去 root wenwen cat test.txt...
C語言 檔案重定向
重定向的定義 將輸入輸出標準流定向使用者規定的檔案並讀取或寫入,減少了使用者不斷重新輸入資料的 冗餘。由於變數在未賦值之前的值是不確定的 初值不一定為0 這時我們可以用檔案把輸入資料儲存在檔案中,輸出資料也儲存在檔案中,而使用檔案最簡單的方法便是使用輸入輸出重定向,只需在main函式的入口處加入以下...