1. 程式人生 > >機試練習總結06:c語言輸入&輸出&文件讀寫

機試練習總結06:c語言輸入&輸出&文件讀寫

putchar 錯誤 std 機試 open() 返回 oid eof getchar

一、標準文件

c語言把所有設備當作文件。

stdin:鍵盤、標準輸入

stdout:屏幕、標準輸出

stderr:您的屏幕、標準錯誤

頭文件:stdio.h

二、getchar() & putchar()

int getchar(void) 從屏幕讀取下一個可用字符,並用它返回為一個整數。

int putchar() 該函數同一時間內只會輸出一個單一的字符。

三、gets() & puts() 函數

char *gets(char *s) 從stdin讀取一行到s所指向的緩沖區,直到一個終止符或EOF。

int puts(const char *s) 把字符串s和一個尾隨的換行符寫入到stdout。

四、scanf() & printf() 函數

int scanf(const char *format, ...) 函數從標準輸入流 stdin 讀取輸入,並根據提供的 format 來瀏覽輸入。

int printf(const char *format, ...) 函數把輸出寫入到標準輸出流 stdout ,並根據提供的格式產生輸出。

五、文件讀寫——創建、打開、關閉文本或二進制文件

1. 打開文件

fopen()函數創建一個新的文件或者打開一個已有的文件

FILE *fopen( const char * filename, const char * mode );

mode可以是以下值中的一個: 

r:打開一個已有文件,允許讀取;

w:打開一個文本文件,允許寫入;如果文件不存在,則創建一個新文件;

a: 打開一個文本文件,以追加模式寫入文件;如果文件不存在,則創建一個新文件;

r+:打開一個文本文件,允許讀寫文件;

w+:打開一個文本文件,允許讀寫文件;如果文件已存在,則文件會被截斷為零長度;如果文件不存在,則會創建一個新文件;

a+:打開一個文本文件,允許讀寫文件;如果文件不存在,則會創建一個新文件;讀取會從文件的開頭開始,寫入只能是追加模式。

若讀取的是二進制文件,則需使用下面的訪問模式代替上面訪問模式:

"rb", "wb", "ab", "rb+", "r+b", "wb+"
, "w+b", "ab+", "a+b"

2.關閉文件

fcolse()函數

int fclose( FILE *fp );

如果成功關閉文件,fclose()函數返回0,如果關閉文件時發生錯誤,函數返回EOF。這個函數實際上,會清空緩存區中的數據,關閉文件,並釋放用於該文件的所有內存。

EOF是一個定義在頭文件stdio.h中的常量。

3.寫入文件

fputs()

int fputs( const char *s, FILE *fp );

把字符串s寫入fp所指向的輸入流。寫入成功,返回寫入的字符;如果發生錯誤,則返回EOF。

也可以使用 int fprintf(FILE *fp,const char *format, ...) 函數來寫把一個字符串寫入到文件中。

4. 讀取文件

(1)從文件中讀取單個字符

int fgetc( FILE * fp );

返回值是讀取的字符,如果錯誤,返回EOF。從fp所指向的輸入流中讀取一個字符。

(2)從fp所指向的輸入流中讀取n-1個字符

char *fgets( char *buf, int n, FILE *fp );

把讀取的字符串復制到緩沖區buf,並在最後追加一個null字符來終止字符串。如果這個函數在讀取最後一個字符之前就遇到一個換行符 ‘\n‘ 或文件的末尾 EOF,則只會返回讀取到的字符,包括換行符。

也可以使用 int fscanf(FILE *fp, const char *format, ...) 函數來從文件中讀取字符串,但是在遇到第一個空格字符時,它會停止讀取。

機試練習總結06:c語言輸入&輸出&文件讀寫