c -> 流和文件

分為輸入流和輸出流

  1. 輸入流:調(diào)用fprintf(),puts()等會(huì)打開
  2. 輸出流:調(diào)用fscanf(),gets()等會(huì)打開

緩沖區(qū)

緩沖區(qū)是內(nèi)存的一段空間,當(dāng)程序需要從外存中讀取文件中的數(shù)據(jù)時(shí),系統(tǒng)先讀入足夠多的數(shù)據(jù)到緩沖區(qū)中,然后程序?qū)彌_區(qū)中的數(shù)據(jù)進(jìn)行處理。
根據(jù)緩沖區(qū)是否由系統(tǒng)自動(dòng)提供,分為緩沖文件系統(tǒng)和非緩沖文件系統(tǒng)
早期的UNIX操作系統(tǒng)是非緩沖模式,被稱為UNIX I/O系統(tǒng)或者非緩沖I/O系統(tǒng)
ANSI C(C89,C90)只支持緩沖文件系統(tǒng)。

標(biāo)準(zhǔn)流

c語(yǔ)言中預(yù)先定義了三種標(biāo)準(zhǔn)流 stdin,stdout,stdrr(使用很少). 這些流定義在stdio.h中,默認(rèn)連接到鍵盤和顯示器,多數(shù)系統(tǒng)也允許重定向到文件輸入輸出

  1. stdin: 調(diào)用scanf(),getchar(),gets()時(shí)會(huì)打開
  2. stdout: 調(diào)用printf(),putchar(),puts()時(shí)會(huì)打開
    stdin流和stdout流允許用戶交互式運(yùn)行程序,通過重定向?qū)崿F(xiàn)
    在cmd可以通過輸入 program.exe在cmd中運(yùn)行,通過標(biāo)準(zhǔn)輸入流從鍵盤輸入數(shù)據(jù),通過標(biāo)準(zhǔn)輸出流把結(jié)果輸出到顯示器。如果使用重定向模式,則使用命令 program.exe<abc.in>abc.out,操作系統(tǒng)按照非交互式方式運(yùn)行程序,標(biāo)準(zhǔn)輸入被重定向到文件my.in,標(biāo)準(zhǔn)輸出流被重定向到文件my.out

用戶自定義流

當(dāng)需要讀寫文件的時(shí)候,程序員可以使用重定向標(biāo)準(zhǔn)流到文件(如上)。還可以重新創(chuàng)建一個(gè)用戶自定義流。

操作標(biāo)準(zhǔn):

  1. 創(chuàng)建流(打開文件)
    2.判斷操作成敗
    3.讀寫
    4.關(guān)閉流

打開流

1.定義流變量

流變量是文件類型指針變量

#include<stdio.h>
FILE *fp

打開失敗返回NULL
要判斷下是否打開成功
結(jié)束后要關(guān)閉流 fclose();

FILE *fopen( const char * filename, const char * mode );
int fclose( FILE *fp );
int fputc( int c, FILE *fp );
int fputs( const char *s, FILE *fp );
int fprintf(FILE *fp,const char *format, ...)
int fgetc( FILE * fp );
char *fgets( char *buf, int n, FILE *fp );//n個(gè)字符
 int fscanf(FILE *fp, const char *format, ...)

mode

mode
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,339評(píng)論 0 10
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,718評(píng)論 0 5
  • 第八章 c++輸入和輸出流 8.1 流的概念和流類庫(kù)的結(jié)構(gòu) 程序的輸入指的是從輸入文件將數(shù)據(jù)傳送給程序,程序的輸出...
    CodeDove閱讀 773評(píng)論 0 3
  • 《Linux命令行與shell腳本編程大全》,4 E -- Chapter 15 一、理解輸入和輸出 顯示腳本輸出...
    生信擺渡閱讀 5,704評(píng)論 0 2
  • 第三章 文件i/o 3.1引言 不帶緩沖的io(unix系統(tǒng)在內(nèi)核中設(shè)有緩沖區(qū),這個(gè)不帶緩沖意思是用戶不自己緩沖)...
    m風(fēng)滿樓閱讀 1,073評(píng)論 0 0

友情鏈接更多精彩內(nèi)容