C輸入輸出與檔案

2021-08-02 04:41:55 字數 2821 閱讀 8608

【 int getchar();】

【int putchar(int);】

【 int printf(格式控制,輸出表列);】

<1> %d %ld 整型或長整型

<2> %c     字元型,引數可以為對應ascii碼或單引號內的字元

<3> %f %lf 浮點數,double型常用%lf。預設6位小數,自動進行四捨五入

<4> %s     字串型,不輸入輸出'\0'

<5> %e     用e計數法(科學計數法)輸出浮點數

<6> %x     輸出16進製制數,%#x輸出0x格式

<7> %o     無符號8進製數

<8> 浮點數%m.nf,m是說明總寬度,正數代表左對齊負數代表右對齊。預設用空格補位,如果m的最高位為0則用0補位。 

c通過變數型別來將變數值存在堆疊(stack

)中,但

printf

函式在讀取時依據轉換說明符。如果較長的資料使用較短的說明符只會讀取一部分**換為十進位制後可能變成古怪的數字),較短的資料使用較長的說明符會讀取下一記憶體單元中的字元而輸出不可預知的結果。

printf函式成功輸出會返回輸出的字元數(包括列印字元和非列印字元),失敗返回乙個代表失敗型別的負值。

在指定輸出位數時可以用*

代替數字,但在輸出表列的對應位置要有乙個對應的int值。

printf("

%.*f

",2,2.333);

【int scanf(格式控制,位址表列);】

【char *gets(char *);】

與scanf()比較:

【int puts(const char *str);】

【(file *) fopen(檔名,模式字串);】

1)"r" 唯讀 "w"只寫 "a" 追加

2)"b" 二進位制檔案

3)"+" 可讀寫

1)必須寫出,當目標檔案不存在時,"r","a"出錯,"w"將建立乙個新檔案。

2)可不寫,預設時開啟文字檔案。

3)可不寫,預設時唯讀只寫。

1)"r+"在檔案頭開始讀寫但不會清除檔案內容(類似改寫模式)。                 

2)"a+"為從檔案尾進行讀寫,並自動移動eof(a模式下不會自動移動eof,可能會在某些環境下無法讀取追加的內容故推薦a+)。        

3)"w+"清空檔案後重寫。

【int fclose(檔案指標);】

關閉全部檔案:

【int fcloseall(void);】

【file *freopen(const char* new,const char *type, file *stream);】

其中:new:新流的名稱

type:開啟方式(同fileopen函式)

stream:原有流。

成功返回新流的指標,失敗返回null。

重定向函式向原有流的讀寫將被向新流的讀寫替代,可以在不改變其它**的情況下使得程式的預設讀寫物件改變常用於將stdin(stdout, stderr)替換為檔案使得scanf或printf等函式實現向檔案讀寫。

若要恢復標準流,可以重新開啟標準控制台裝置檔案,只是這個裝置檔案的名字是與作業系統相關的。

dos/windows:

【freopen("con", "r", stdin);】

linux:

【freopen("/dev/console", "r", stdin);】

【int fflush(file *fp);】

重新整理所有緩衝區:

【int fflushall(void);】

【void exit(int);】

【int fgetc(file *fp);】

【int fputc(int ch,file *fp)】

向檔案寫字元ch。

【char *fgets(char *,int,file *fp);】

【int fputs(const *char, file *fp)】

【int fprintf(檔案指標,格式字串,輸出表列);】

【int fscanf(檔案指標,格式字串,位址表列);】

【size_t fread(void *buffer,size_t size, size_t count, file *fp);】

【size_t fwrite(const void *buffer,size_t size, size_t count, file *fp);】

其中:buffer:向檔案寫出(從檔案讀入)的記憶體區域首位址。

size:要讀寫的每個資料項的位元組數。

count:要讀寫的資料項的個數。

fp:檔案指標。

在開啟檔案時以二進位制檔案開啟,就可以讀寫任何型別的資料。

改變檔案讀寫標記:fseek()和rewind()

【int fseek(file *filename, long int offset, int from);】

其中:filename:操作的檔案物件

offset:偏移量(長整型,要在數字末尾加乙個l),正值             表示向檔案結尾移動,負值表示向檔案開頭移動。

from:移動的起始點,c中定義:

0 - seek_set  檔案開頭

1 - seek_cur 當前位置

2 - seek_end 檔案結尾

【void rewind(file *filename);】

【long int ftell(file *fp);】

【int feof(file *fp);】

【ferror(fp);】

【void clearerr(file *fp);】

C 檔案輸入輸出

檔案輸入輸出 1 directory info 和file info 型別 directory和file通過靜態成員實現操作,擴充套件了system.object。返回強型別物件。directoryinfo和fileinfo通過例項級方法實現 必須使用new關鍵字分配它們 從filesystemin...

C 檔案輸入輸出

儲存在變數,陣列,物件中的資料都是暫時性的,當程式退出以後就會丟失,為了永久性儲存程式中有用資料,需要將資料以檔案形式儲存於磁碟或者光碟等物理介質。c 檔案主要是兩種 文字檔案和二進位制檔案 例如c 源程式是儲存在文字檔案,而最後的可執行程式是二進位制檔案。當然計算機本身是不區分二進位制檔案和文字的...

C 檔案輸入輸出

1 文字檔案的讀寫 文字檔案的讀寫,可以使用類似cin,cout方式,此外還有getline,get,二進位制檔案讀寫方式read,write經測試也可以使用 include include int main char buffer 256 注意使用getline讀至buffer,需新增 0 whi...