重定向 C語言實現重定向

2021-10-15 00:15:06 字數 1159 閱讀 4961

本題是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函式的入口處加入以下...