C的I O函式備忘錄

2021-07-29 05:14:09 字數 4442 閱讀 7394



int getc(file* ): 1.可能實現為巨集;2.出錯或達到檔案尾返回eof;

int fgetc(file* ): 1.一定是函式;2.出錯或達到檔案尾返回eof;

int getchar(voiid): 1.從標準輸入讀取,等價於fgetc(stdin);2.出錯或達到檔案尾返回eof;

int ungetc(int c, file* fp): 1.回送的字元不必等於上次讀到的字元;2.不能回送eof;3.到達檔案尾後仍然能回送字元,且會清楚該流的檔案結束標記;4.支援任意次數的回送;回送的字元會重新回到流緩衝區中;

int putc(int c, file* fp): 1.可能實現為巨集;2.成功則返回c,出錯則返回eof;

int fputc(int c, file* fp): 1.一定是函式;2.成功則返回c,出錯則返回eof;

int putchar(int c): 1.輸出到標準輸出,等價於fputc(c, stdout);2.成功則返回c,出錯則返回eof;

char* fgets(char* buf, int n, file* fp): 1.成功返回buf,已到達檔案尾或出錯返回null;2.讀取了n-1個字元(包括換行符)或在讀取n-1個字元前讀取到換行符或到達檔案尾則停止讀取;3.緩衝區自動在讀取字元後面新增null位元組;

char* gets(char* buf): 1.從標準輸入讀取;2.成功返回buf,已到達檔案尾或出錯返回null;3.不能指定緩衝區大小,不推薦使用;4.不將讀取到換行符存入緩衝區;

int fputs(const char* str, file* fp): 1.成功返回非負值,失敗返回eof;2.尾端的null位元組不會被寫到流中;

int puts(const char* str): 1.輸出到標準輸出;2.尾端的null位元組不會被寫到流中;3.會自動在末尾新增換行符;

size_t fread(void* ptr, size_t size, size_t nobj, file* fp): 1.返回寫入的物件數;2.如果返回值小於所要求的nobj則出錯;3.只能用於讀取同一系統(最好同一編譯器編譯)上程式已寫的資料,否則可能因為對齊,大小端等問題出錯;

size_t fwrite(const void* ptr, size_t size, size_t nobj, file* fp): 1.如果出錯或達到檔案尾,返回值可以小於nobj;

int fprintf(file* fp, const char* format, ...): 1.將格式化字元寫入流;2.成功返回輸出字元數,出錯返回負值;

int printf(const char* format, ...): 1.輸出到標準輸出;2.成功返回輸出字元數,出錯返回負值;

int dprintf(int fd, const char* format, ...): 1.輸出到指定的檔案描述符;2.成功返回輸出字元數,出錯返回負值;

int sprintf(char* buf, const char* format, ...): 1.將格式化字元寫入陣列buf中;2.自動在尾部新增null位元組,但不包括在返回值中;

int snprintf(char* buf, size_t n, const char* format, ...): 1.將格式化字元寫入陣列buf中;2.自動在尾部新增null位元組,但不包括在返回值中;最多儲存n-1個字元,超出的字元會被丟棄,但是會包括在返回值中;

int vfprintf(file* fp, const char* format, va_list arg): 

int vprintf(const char* format, va_list arg): 

int vdprintf(int fd, const char* format, va_list arg): 

int vsprintf(char* buf, const char* format, va_list arg): 

int vsnprintf(char* buf, size_t n, const char* format, va_list arg): 1.跟前面不加v的函式基本一樣,用arg取代不定常引數;

int fscanf(file* fp, const char* format, ...): 1.成功返回輸入項數,出錯或到達檔案尾,返回eof;

int scanf(const char* format, ...): 1.從標準輸入讀取;2.成功返回輸入項數,出錯或到達檔案尾,返回eof;

int sscanf(const char* buf, const char* format, ...): 1.從字串讀取;2.成功返回輸入項數,出錯或到達檔案尾,返回eof;

int vfscanf(file* fp, const char* format, va_list arg):

int vscanf(const char* format, va_list arg): 

int vsscanf(const char* buf, const char* format, va_list arg): 1.跟前面不加v的函式基本一樣,用arg取代不定常引數;

long ftell(file* fp): 1.返回但其檔案位置,出錯返回-1;

int fseek(file* fp, long offset, int whence): 1.對於文字檔案,whence只能是seek_set(檔案起始位置),offset只能是0或ftell的返回值;2.成功返回0,出錯返回-1;

void rewind(file* fp): 1.將流設定到檔案的起始位置;

int fgetpos(file* fp, fpos_t* pos): 1.將當前檔案位置儲存在pos;2.成功返回0,否則返回非0;

int fsetpos(file* fp, const fpos_t* pos): 2.將當前檔案位置設定為pos;2.成功返回0,否則返回非0;

void setbuf(file* fp, char* buf): 1.如果buf為null,流設定為不緩衝,否則buf必須指向長度至少為bufsiz的快取區,流設定為全緩衝;2.必須在流開啟後和執行任何乙個其他操作之前呼叫;

int setvbuf(file* fp, cahr* buf, int mode, size_t size): 1.設定流的緩衝模式和緩衝大小等;2.必須在流開啟後和執行任何乙個其他操作之前呼叫;3.成功返回0,否則返回非0;

int fflush(file* fp): 1.使流所有未寫的資料都被傳送至核心;2.如果fp是null,則所有輸出流都被沖洗;3.成功返回0,出錯返回eof;

file* fopen(const char* pathname, const char* type):

file* freopen(const char* pathname, const char* type, file* fp): 1.在指定的流上開啟指定的檔案,如果該流已經開啟,則先關閉,如果流已經定向,則清除定向;2.一般用於將乙個檔案開啟為乙個預定義的流:標準輸入,標準輸出或標準錯誤;

file* fdopen(int fd, const char* type): 1.將檔案描述符轉化流;

type可以為以下值:

"r"或「rb」: 為讀而開啟

"w"或"wb": 為寫而開啟

"a"或"ab": 追加;為在檔案尾寫而開啟,或為寫而建立

"r+"或"r+b"或"rb+": 為讀和寫而開啟,不截斷檔案

"w+"或"w+b"或"wb+": 為讀和寫而開啟,把檔案截斷至0長

"a+"或"a+b"或"ab+": 為在檔案尾讀和寫而開啟或建立

當以讀寫開啟檔案時(type中有+),具有以下的限制:

1.如果中間沒有fflush,fseek,fsetpos,rewind,則在輸出的後面不能直接跟隨輸入

2.如果中間沒有fseek,fsetpos,rewind,或者乙個輸入操作沒有到達檔案尾,則在輸入操作之後不能直接跟隨輸出

int fclose(file* fp): 1.沖洗緩衝中的輸出資料,丟棄緩衝區中的輸入資料;2.即使呼叫失敗,流也不再跟檔案和緩衝區關聯;3.成功返回0,出錯返回eof;

int feof(file*): 1.判斷是否達到檔案尾(並且嘗試進行讀操作等),條件為真返回非0,否則返回0;

int ferror(file*): 1.判斷流是否出錯,條件為真返回非0,否則返回0;

void clearerr(file*): 1.清除流的eof和error標誌;

void perror(const  char* str): 1.根據全域性變數errno列印錯誤資訊,如果str非null,在錯誤資訊前加str的內容;

char* tmpnam(char* ptr): 1.產生乙個跟現有檔名不同的乙個有效路徑名字串;2.最多呼叫次數是tmp_max;3.如果ptr是null,路徑名儲存在靜態區中(會被下次呼叫覆蓋),如果不是null,ptr指向至少是l_tmpnam個字元的陣列;3.失敗返回null;

file* tmpfile(void): 1.建立乙個臨時的二進位制檔案(型別wb+);2.關閉該檔案或程式結束自動刪除檔案,程式異常終止時是否刪除檔案取決於實現;3.失敗返回null;

函式備忘錄

php 雜項函式 strip whitespace 函式返回已刪除 php 注釋以及空白字元的源 檔案。該函式對於檢測指令碼中的實際 量很有用。php 過濾器用於對來自非安全 的資料 比如使用者輸入 進行驗證和過濾。filter 函式是 php 核心的組成部分。無需安裝即可使用這些函式。php 指示...

C 基礎備忘錄

1.decimal 型別呼叫tostring 方法後沒把末尾的0去掉的解決辦法 例子 decimal?money convert.todecimal 10.8950 string moneystr money.value.tostring 結果在同一臺機子,兩個專案裡面會出現兩個不同的結果。結果一 ...

c 備忘錄模式

結構圖 memento類 儲存狀態的容器 複製 如下 class memento public memento string state caretaker是儲存memento類 複製 如下 class caretaker originator類就是需要儲存狀態的類 複製 如下 class orig...