機試練習總結06:c語言輸入&輸出&文件讀寫
一、標準文件
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語言輸入&輸出&文件讀寫