第5章標準I O庫總結

2022-09-17 06:30:10 字數 1393 閱讀 2618

1 fwide函式試圖設定流的定向(流的定向決定了讀寫單位元組還是多位元組字元)

int fwide(file *fp,int mode)

寬定向返回正值,位元組定向返回負值,為定向返回0

已定向流不會改變流的定向

2 setbuf函式中指定的緩衝區的長度為bufsiz,這個常量在stdio.h中定義

3 freopen和fdopen函式

file *freopen(char *pathname,const

char *type,file *fp)

file *fdopen(int filedes,const

char *type)

3 gets和fgets、puts和fputs函式

char *fgets(char *buf,int n,file *fp)

char *gets(char *buf)

int fputs(const

char *str,file *fp)

int puts(const

char *str)

gets函式無法指定緩衝區長度,可能導致寫到緩衝區之後的儲存空間中

puts函式會新增乙個換行符

4 二進位制i/o

size_t fread(void *buf,size_t size,size_t n,file *fp)

size_t fwrite(

const

void *ptr,size_t size,size_t n,file *fp)

5 定位流

流中的位置可以用long、off_t、fpos_t三種型別表示,對應有三種定位、設定流當前位置的函式

long:

long ftell(file *fp)

int fseek(file *fp,long offset,int whence)

off_t:

off_t ftell(fiel *fp)

int fseeko(file *fp,off_t offset,int whence)

pos_t:

int fgetpos(file *fp,fpos_t *pos)

int fsetpos(file *fp,const fpos_t *pos)

6 格式化i/o

格式化輸出:printf、fprintf、sprintf、snprintf(相比於sprintf,可以指定緩衝區長度n,超出長度將溢位)

vprintf、vfprintf、vsprintf、vsnprintf

格式化輸入:scanf、fscanf、sscanf

vscanf、vfscanf、vsscanf

第5章 標準I O庫

當開啟乙個流時,標準i o函式fopen返回乙個指向file物件的指標。該物件通常是乙個結構,它包含了標準i o庫為管理該流所需要的所有資訊,包括 用於實現i o的檔案描述符 指向用於該流緩衝區的指標 緩衝區的長度 當前在緩衝區中的字元數以及出錯標誌等等。應用程式沒有必要檢驗file物件。對乙個程序...

第5章 標準I O庫

流的定向決定了所讀 寫的字元是單位元組還是多位元組的。如ascii字符集是單位元組的,國際字符集是多位元組的 include includeint fwide file fp,int mode 寬定向返回正值,位元組定向返回負值,未定向返回0fwide並不改變已定向的流方向 三個標準i o流通過預定...

第8章 標準IO庫

iostream繼承層次 istream和ostream是最上層,istream派生出ifstream和istringstream,ostream派生出ofstream和ostringstream。他們兩者共同派生出iostream。iostream派生出stringstream和fstream。標...