有趣的C語言 檔案結尾和重定向

2021-07-15 19:44:53 字數 1224 閱讀 3991

計算機需要用某種方式來知道檔案的起始和結尾,可以通過以下方法來做這個檢測。

檢測結尾的方法是在檔案中放置乙個特殊字元來標誌結尾,這是在例如cp/m、ibm-dos和ms-dos的文字檔案中曾使用的一種方法。比如可以內嵌乙個ctrl+z來標誌檔案結尾^z。

另外一種方法是讓作業系統儲存檔案大小的資訊,如果乙個檔案有100位元組的大小,那麼如果程式已經從這個檔案讀取了100位元組,那就表示這已經到了檔案結尾。unix對所有檔案都使用此方法。

對於這兩種方法,c的處理方法是讓getchar()函式在到達檔案結尾時返回乙個特殊值。賦予該值的名稱是eof(end of file)。在stdio.h中定義如下#define eof(-1)。-1是因為getchar()返回乙個範圍在0-127之間的值。

#include

int main()

return

0;}

我們可以嘗試輸出:

1111

1111

2222

2222

ctrl^z //回車後,程式將結束

1.輸入重定向

當我們需要將其他文字中的內容輸出到控制台可以使用輸入重定向

新建在同一目錄下建立word.txt,寫入this is word.txt

cmd下執行 echo_eof 2.輸出重定向

echo_eof >word.txt(將控制台內容輸出到word.txt,但是會覆蓋原來的)

>>則是從末尾輸入

3.組合重定向

echo < word.txt >a.txt (從控制台輸出到word.txt,再輸入到a.txt) 注意 word.txt可以不存在,但是a.txt必須存在
4.還有》& <& |

5.規則:

重定向符號將乙個可執行檔案與資料檔案連線

不能用於資料檔案與資料檔案的連線

輸入和輸出都不能來自乙個以上的檔案

c從檔案讀取資料

#include

#include

int main()

// getc(fp)從開啟檔案中獲取乙個字元

while((ch=getc(fp))!= eof)

fclose(fp);

return

0;}

原始碼位置:

C語言 檔案重定向

重定向的定義 將輸入輸出標準流定向使用者規定的檔案並讀取或寫入,減少了使用者不斷重新輸入資料的 冗餘。由於變數在未賦值之前的值是不確定的 初值不一定為0 這時我們可以用檔案把輸入資料儲存在檔案中,輸出資料也儲存在檔案中,而使用檔案最簡單的方法便是使用輸入輸出重定向,只需在main函式的入口處加入以下...

重定向 C語言實現重定向

本題是c primer plus 5版 第8章程式設計題第一道題,題目如下 從題述來看,有如下幾個關鍵點 有這麼乙個文字檔案 讀入檔案中的文字 統計檔案中字元數 判斷檔案的結尾 以上4點都做到了,此題解完。那麼,這4步的每一步該如何解決呢?1.有這麼乙個文字檔案 這個好解決,事先建立好乙個文字檔案,...

檔案讀寫和重定向

include include include include include intmain int argc,char ar 結果分析 fd1,fd2,fd3開啟三次abcde.txt檔案 dup2 fd2,fd3 fd2覆蓋掉fd3 3個read讀fd1,fd2,fd3的乙個字元,記為c1,c...