溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

標(biāo)準(zhǔn)I/O操作

發(fā)布時(shí)間:2020-08-11 00:24:31 來源:網(wǎng)絡(luò) 閱讀:446 作者:韓A 欄目:編程語言

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


1、FILE* fopen(const char* path, const char* mode)

      FILE :文件打開的各種狀態(tài)信息的指針;

      path: 文件路徑;注意,目錄文件只能以只讀形式打開,不能進(jìn)行寫;

      mode:  文件打開的模式: “r”(只讀,且文件必須存在),“w”(只寫,如果文件不存在,則創(chuàng)建,如果已經(jīng)存在,則將其長度截?cái)酁?,從頭寫),“a”(表示追加數(shù)據(jù)到末尾,如果文件不存在,則創(chuàng)建),“r+”,“w+”,“a+”;

      

2、int fgetc(FILE *stream)  從文件或終端中讀取一個(gè)字節(jié)返回,本來應(yīng)該返回uchar類型,但是函數(shù)原型的返回值是int型,所以要轉(zhuǎn)化為擴(kuò)展為int型的;這個(gè)函數(shù)既可以從終端讀,也可以從文件中讀;


3、int getchar(void) 從終端(只能從終端)中讀取一個(gè)字節(jié),返回時(shí)擴(kuò)展為int型,原因同上;


4、int fputc(int c,FILE* stream);int putchar(int c); 為寫入函數(shù),寫入是文件必須是可寫的;


5、int fseek(FILE* stream, long offset ,int whence)  用于設(shè)置讀寫指針偏移,返回相對(duì)于文件起始位置的偏移量大??;


6、int ftell(FILE *stream) 用于返回當(dāng)前讀寫指針的位置;


7、void rewind(FILE *stream) 用于讀寫指針移動(dòng)到文件的起始位置;


8、char* gets(char *s)從標(biāo)準(zhǔn)輸入一行保存在緩沖區(qū),但是永遠(yuǎn)不要用這個(gè)函數(shù);因?yàn)槲粗付ň彺鎱^(qū)的大小,所以很容易產(chǎn)生緩沖區(qū)溢出,造成錯(cuò)誤;


9、char* fgets(char *s, int size, FILE* stream) 表示從指定的文件中讀取一行,到用戶指定的緩沖區(qū);返回的指針是指針s移動(dòng)后的位置;

      注意: fgets()只適用于讀不含‘\0’的文本文件,因?yàn)閒gets()會(huì)自動(dòng)在末尾加‘\0’,但是,如果用戶在輸入中也輸入‘\0’,那么就無法識(shí)別是fgets自己加的,還是用戶加的;另外,由于’\0‘的ASIIC 是0x00,所以在不能讀二進(jìn)制文件;


10、int fputs(const char *s, FILE* stream); 將字符串寫入到文件中,不含末尾的’\0‘;

        int puts(const char* s); 將字符串寫入到標(biāo)準(zhǔn)輸入中;


11、對(duì)文件進(jìn)行的任何操作,都要先明白讀寫指針在什么地方,這個(gè)決定了你讀寫的位置;


12、fread(void *str, size_t size, size_t nmemb, FILE* stream) 從文件stream 中讀取nmemb 個(gè)大小為size字節(jié)大小的數(shù)據(jù)到 str;

       fwrite(void *str, size_t size, size_t nmemb, FILE* stream) 同上,是寫入文件;


13、全緩沖:等待緩沖區(qū)寫滿以后,才寫入內(nèi)核;常規(guī)文件用此方式;

        行緩沖:等待有換行符的時(shí)候,就寫入內(nèi)核;標(biāo)準(zhǔn)輸入輸出用這種方式;

        不帶緩沖:用戶每次寫操作都要調(diào)用系統(tǒng)調(diào)用,寫入內(nèi)核;

        int fflush(FILE* stream) 用于將緩沖區(qū)的數(shù)據(jù)立即寫入內(nèi)核;成功返回0;


14、標(biāo)準(zhǔn)文件流:FILE:         stdin ,stdout, stderr;


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI