第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

c語(yǔ)言的問(wèn)題,不太理解這個(gè)函數(shù),大神給解釋一下?

c語(yǔ)言的問(wèn)題,不太理解這個(gè)函數(shù),大神給解釋一下?

手掌心 2019-02-05 10:06:34
char * s_gets(char *st, int n){char * ret_val;int i = 0; ret_val = fgets(st, n, stdin);if (ret_val){while (st[i] != '\0' && st[i] != '\n')i++;if (st[i] == '\n')st[i] = '\0';elsewhile (getchar() != '\n')continue;}return ret_val;}
查看完整描述

3 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

fgets函數(shù)原型char *fgets(char *buf, int bufsize, FILE *stream);參數(shù)*buf: 字符型指針,指向用來(lái)存儲(chǔ)所得數(shù)據(jù)的地址。bufsize: 整型數(shù)據(jù),指明存儲(chǔ)數(shù)據(jù)的大小。*stream: 文件結(jié)構(gòu)體指針,將要讀取的文件流。含義:從文件結(jié)構(gòu)體指針stream中讀取數(shù)據(jù),每次讀取一行。讀取的數(shù)據(jù)保存在buf指向的字符數(shù)組中,每次最多讀取bufsize-1個(gè)字符(第bufsize個(gè)字符賦'\0'),如果文件中的該行,不足bufsize個(gè)字符,則讀完該行就結(jié)束。如若該行(包括最后一個(gè)換行符)的字符數(shù)超過(guò)bufsize-1,則fgets只返回一個(gè)不完整的行,但是,緩沖區(qū)總是以NULL字符結(jié)尾,對(duì)fgets的下一次調(diào)用會(huì)繼續(xù)讀該行。函數(shù)成功將返回buf,失敗或讀到文件結(jié)尾返回NULL。

----------------------------以上說(shuō)明,引用百度知道,“修者世界 ”的發(fā)言,不是本人編著

下面我對(duì)你這個(gè)代碼補(bǔ)充說(shuō)明:

stdin是C語(yǔ)言中標(biāo)準(zhǔn)輸入流,一般用于獲取鍵盤(pán)輸入

所以代碼 ret_val = fgets(st, n, stdin); 這里意思:

從鍵盤(pán)讀入n位字符+結(jié)束'\0’存放到st數(shù)組中。

而判斷if (ret_val){。。。。這里的意思:

當(dāng)鍵盤(pán)輸入的字符大于一次讀取緩存空間st時(shí)(ret_val 以‘\0’結(jié)尾),通過(guò)               getchar()截取掉鍵盤(pán)緩沖區(qū)剩余字符。并返回 ret_val 。

當(dāng)鍵盤(pán)輸入的字符小于一次讀取緩存空間st時(shí)(ret_val 以回車(chē)‘\n’結(jié)尾),

將結(jié)尾的'\n'替換成'\0',并返回ret_val 。

所以總結(jié):

char * s_gets(char *st, int n)的意思就是: 傳參數(shù)組指針st、數(shù)組大小n。返回鍵盤(pán)輸入的字符串前n-1個(gè)字符。

比如,main函數(shù)調(diào)用,定義6維度大小的數(shù)組

12345678int main(){    char buf[6],*restr;    int n=sizeof(buf);    restr=s_gets(buf,n);    printf("%s",restr);    return 0;}

輸入9個(gè)字符。打印前5個(gè)。

輸入4個(gè)字符。打印全部。



查看完整回答
反對(duì) 回復(fù) 2019-03-14
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

大致意思是一次從stdin讀取一行,最多n個(gè)字符, 如果n個(gè)里面包含回車(chē),截取回車(chē)前面的
如果不包含回車(chē),一致讀直到讀到回車(chē)

或者

返回一個(gè)指向字符串的指針

查看完整回答
反對(duì) 回復(fù) 2019-03-14
  • 3 回答
  • 0 關(guān)注
  • 956 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)