1、c中引入流的概念,將資料的資料的輸入輸出看作是資料的流入和流出,這樣不管是磁碟檔案或者是物理裝置(印表機、顯示器、鍵盤等),都可看作是資料流的源和目的。抽象為一種流,更有利於程式設計,具體涉及資料流的輸入輸出可用作各種物件。
2、在c中流可分為兩類,文字流和二進位製流。計算機的儲存在物理上是二進位制的,文字檔案與二進位制檔案的區別並不是物理上的,而是邏輯上的。簡單來說,文字檔案是基於字元編碼的檔案,常見的編碼有ascii編碼,unicode編碼等等。二進位制檔案是基於值編碼的檔案,你可以根據具體應用,指定某個值是什麼意思(這樣乙個過程,可以看作是自定義編碼)。
2、1文字流指的是在流動中的資料是以字元形式出現的。在文字流中,'\n'被換成回車和換行的0dh和0ah。當輸出時,則0dh和0ah本換成'\n'。
2、2二進位製流的流動的是二進位制序列,若流中有字元,則由乙個位元組的二進位制ascii碼表示,若是數字則用乙個位元組的二進位制數字表示。在流入流出時,對\n符號不進行轉換。
2、3例如2001這個數,在文字流中用其ascii碼表示為:
'2' '0' '0' '1'
| | | |
50 48 48 49
共佔4位元組。而在二進位製流中則表示為:00000111 11010001 用十六進製制就是07d1。只佔兩位元組。由此看出,二進位製流比文字流節省空間,且不用進行對\n的轉換,這樣可以大大加快流的速度,提高效率。因而,對於含有大量數字資訊的數字流,可以採用二進位製流的方式;對於含有大量字元資訊的流,則採用文字流的方式。
3、讀文字內容然後列印出來
file *openfile(char *p,char *m)
*/if(strcmp(p,"輸入")==0)
else if(strcmp(p,"輸出")==0)
else
if((f=fopen(buf,m))==null)
return f;
}int fun(int value);
int main(int argc,char **argv)
fclose(input);
return exit_success;
}
文字流和二進位製流
華清遠見 楊碩 我們在寫 c程式的時候經常會涉及到對流的操作,比如說從標準輸入流讀取一串字串,然後通過標準輸出流輸出顯示在螢幕上,這也就是所謂的 io操作。那麼流究竟是什麼東西?下面首先對流這個概念做一下解釋。一 流 stream 的概念 計算機有很多外部裝置,比如鍵盤 滑鼠 cd rom io操作...
文字流和二進位製流
華清遠見嵌入式學院 講師。我們在寫c程式的時候經常會涉及到對流的操作,比如說從標準輸入流讀取一串字串,然後通過標準輸出流輸出顯示在螢幕上,這也就是所謂的io操作。那麼流究竟是什麼東西?下面首先對流這個概念做一下解釋。一 流 stream 的概念 ansi c進一步對io的概念進行抽象。就c程式而言,...
文字流和二進位製流
我們在寫c程式的時候經常會涉及到對流的操作,比如說從標準輸入流讀取一串字串,然後通過標準輸出流輸出顯示在螢幕上,這也就是所謂的io操作。那麼流究竟是什麼東西?下面首先對流這個概念做一下解釋。一 流 stream 的概念 ansi c進一步對io的概念進行抽象。就c程式而言,所有的io操作只是簡單地從...