C 學習筆記(六)輸入輸出與檔案讀寫

2021-09-29 23:48:30 字數 1975 閱讀 5169

一、輸入輸出相關的類

對以上資料流相關類的解讀:

istream用於輸入的流類,cin是這類的物件

ostream用於輸出的流類,cout是這類的物件

ifstream 用於檔案讀取資料的流類

ofstream用於檔案寫入資料的流類

iostream是既能用於輸入,用於輸出的類

fstream是既能從檔案讀取資料,也能用於檔案寫入資料。

1、cin,cout對應標準輸入輸出流

2、判斷輸入流結束:

(1)、如果從檔案輸入

freopen(「some.txt」,「r」,stdin);

那麼,讀到檔案尾部,輸入流就算結束

(2)、如果是從鍵盤輸入,則在單獨一行輸入ctrl+z代表輸入流結束

3、接下來介紹istream類的成員函式(個人觀點,不要背,記得有這麼回事,需要的時候文件)

(1)、讀取輸入流

istream & getline(char * buf,int bufsize)

在輸入流中讀取bufsize-1個字元到緩衝區buf,或讀到"\n"為止

istream & getline(char * buf,int bufsize, char delim = 「\n」)

在輸入流中讀取bufsize-1個字元到緩衝區buf,或讀到delim字元為止。

兩個函式都會自動在buf中讀入資料結尾新增"\0"。"\n"或delim不會讀入buf,但會從輸入流中取走。

可以用if(!cin.getline(…))來判斷輸入是否結束

bool eof()判斷輸入流是否結束

int peek()返回下乙個字元,但不從流中去掉

istream & putback(char c)將字元c放回輸入流

istream & ignore(int ncount = 1, int delim = eof)從流中刪除掉最多ncount個字元,遇到eof時結束

二、檔案輸入輸出操作

1、可以將順序檔案看做乙個優先字元構成的順序字元流,然後像對cin,cout一樣的讀寫

2、建立檔案

ofstream outfile

("test.txt"

,ios::out|ios::binary)

ofstream fout

("test.txt"

;long location = fout.

tellp()

;// 取得寫指標的位置

location =10;

fout.

seekp

(location)

;// 將寫指標移動到第十個位元組

fout.

seekp

(location, ios::beg)

// 從第十個指標頭數location個位元組

fout.

seekp

(location, ios::cur)

// 從當前位置數location個位元組

fout.

seekp

(location, ios::beg)

// 從尾部數location個位元組 location可為負值

檔案就是讀寫操作

4、二進位制檔案讀寫

read,write函式

二進位制檔案和文字檔案的區別

linux下換行符是"\n"

window下換行符是"\r\n"

macos下換行符是"\r"

liunx下開啟檔案,用不用ios::binary沒區別

windows下開啟檔案,如果不用ios::binary則:讀取二進位制檔案時,所有"\r\n"會被當做"\n"處理

寫入二進位制檔案時,寫入單獨的"\n",系統會自動在前加乙個"\r"

Python 學習筆記(六)(輸入輸出及檔案)

輸入 input input是請使用者輸入,括號中是要輸出的提示內容 輸出 輸出有兩種方式 str format str name input 請輸入你的姓名 print hello str name format coding utf 8 str1 python str2 love print h...

c學習筆記 檔案輸入 輸出 20210315

第一步 呼叫fopen 開啟檔案,fopen 在開啟檔案的同時建立了乙個緩衝區 讀寫模式下兩個 以及乙個包含檔案和緩衝區的結構,同時返回乙個指向該結構的指標,若把指標賦給乙個指標變數fp,文字模式下開啟,獲得乙個文字流 二進位制模式則為二進位製流。fopen 建立的結構通常包含乙個指定流中當前位置的...

C輸入輸出與檔案

int getchar int putchar int int printf 格式控制,輸出表列 1 d ld 整型或長整型 2 c 字元型,引數可以為對應ascii碼或單引號內的字元 3 f lf 浮點數,double型常用 lf。預設6位小數,自動進行四捨五入 4 s 字串型,不輸入輸出 0 5...