C語言中g(shù)ets函數(shù)與getchar函數(shù)的區(qū)別

創(chuàng)新互聯(lián)主營靜海網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),靜海h5小程序設(shè)計搭建,靜海網(wǎng)站營銷推廣歡迎靜海等地區(qū)企業(yè)咨詢
一、函數(shù)輸入方面
1、gets()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到回車結(jié)束,但回車符不屬于這個字符串。其調(diào)用格式為:gets(s);s為字符串變量(字符串?dāng)?shù)組名或字符串指針),gets(s)函數(shù)與scanf("%s", s)相似,但不完全相同。
2、而getchar函數(shù)運(yùn)行時字符是連續(xù)輸入的,運(yùn)行結(jié)果卻是正確的,這是因?yàn)檩斎胱址螅鼈儠捍嬗阪I盤的緩沖區(qū)中,然后由getchar函數(shù)從鍵盤緩沖區(qū)中一個一個的取出來。就是如果輸入了空格會認(rèn)為輸入字符串結(jié)束,空格后的字符將作為下一個輸入項(xiàng)處理,但gets() 函數(shù)將接收輸入的整個字符串直到回車為止。
二、字符輸入方面
1、gets()函數(shù)可以用于對字符串的輸入,不需要將字符串拆分成一個一個的字符進(jìn)行輸入。
2、而getchar函數(shù)只能用于單個字符的輸入,一次輸入一個字符。程序的功能是輸入一個字符,顯示一個字符,回車換行,再輸入并顯示一個字符。
三、輸出格式
1、gets函數(shù)是輸入一行字符串,以回車結(jié)束,并且回車鍵會被過濾掉,不會被讀回到字符串中。
2、而getchar()是讀答取一個字符,包括回車鍵也會被讀成一個字符。這個程序在輸入name[i]前,用getchar()把之前scanf("%d",num[i]);中,輸入整數(shù)后按的回車鍵給讀走,否則這個回車鍵會導(dǎo)致gets直接讀到一個空字符串。
c語言,gets()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到換行符結(jié)束,但換行符會被丟棄,然后在末尾添加'\0'字符。其調(diào)用格式為:gets(s)。其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。如果為單個字符指針,編譯連接不會有錯誤,但運(yùn)行后內(nèi)存溢出錯誤。
擴(kuò)展資料:
gets(s)函數(shù)與scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函數(shù)輸入字符串時存在一個問題,就是如果輸入了空格會認(rèn)為字符串結(jié)束,空格后的字符將作為下一個輸入項(xiàng)處理,但gets()函數(shù)將接收輸入的整個字符串直到遇到換行為止。
gets(s)函數(shù)可以無限讀取,不會判斷上限,以回車結(jié)束讀取,所以程序員應(yīng)該確保buffer的空間足夠大,以便在執(zhí)行讀操作時不發(fā)生溢出。
在前面從鍵盤輸入字符串是使用 scanf 和 %s。其實(shí)還有更簡單的方法,即使用 gets() 函數(shù)。該函數(shù)的原型為:
# include stdio.h
char *gets(char *str);
這個函數(shù)很簡單,只有一個參數(shù)。參數(shù)類型為 char* 型,即 str 可以是一個字符指針變量名,也可以是一個字符數(shù)組名。gets() 函數(shù)的功能是從輸入緩沖區(qū)中讀取一個字符串存儲到字符指針變量 str 所指向的內(nèi)存空間。
下面將前面中使用 scanf 輸入字符串的程序改一下:
# include stdio.h
int main(void)
{
char str[20] = "\0";? //字符數(shù)組初始化\0
printf("請輸入字符串:");
gets(str);
printf("%s\n", str);
return 0;
}
輸出結(jié)果是:
請輸入字符串:i love you
i love you
擴(kuò)展資料:
從stdin流中讀取字符串,直至接受到換行符或EOF時停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為‘\0’空字符,并由此來結(jié)束字符串。
讀入成功,返回與參數(shù)buffer相同的指針;
讀入過程中遇到EOF(End-of-File)或發(fā)生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數(shù)檢查是發(fā)生錯誤還是遇到EOF。
參考資料來源:百度百科-gets
新聞標(biāo)題:c語言輸入函數(shù)gets,C語言輸入函數(shù)怎么用
瀏覽地址:http://chinadenli.net/article14/dseeige.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站改版、品牌網(wǎng)站設(shè)計、軟件開發(fā)、虛擬主機(jī)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)