c語言中gets函式和是scanf函式有什麼區別呢

2021-08-17 19:18:24 字數 1343 閱讀 2626

1樓:匿名使用者

一、指代不同

1、scanf:是c語言中的一個輸入函式。

2、gets:從標準輸入裝置讀字串函式。

二、讀取方式不同

1、scanf:是格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中。

2、gets:可以無限讀取,不會判斷上限,以回車結束讀取,所以程式設計師應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢位。

三、資料流向不同

2、gets:從stdin流中讀取字串,直至接受到換行符或eof時停止,並將讀取的結果存放在buffer指標所指向的字元陣列中。換行符不作為讀取串的內容,讀取的換行符被轉換為『\0』空字元,並由此來結束字串。

2樓:忠實誠信

是不是這**前面還有什麼輸入語句,反正在我電腦上執行結果一樣.

gets與scanf的區別是gets一次讀一行,scanf遇到空格回車結束!

3樓:風若遠去何人留

都是從輸入流中讀取資料,但功能有很大差別:

1 操作型別不同。

gets函式僅用於讀入字串。

scanf為格式化輸出函式,可以讀入任意c語言基礎型別的變數值,而不是僅限於字串(char*)型別。

2 截止字元不同。

gets函式固定的以換行符作為結尾,遇到換行符時結束輸入。

scanf函式預設以空白函式結尾,同時可以對截止函式進行修改。

3 對截止字元處理不同。

gets函式會讀入截止字元\n, 同時將\n自動替換為\0.

scanf遇到截止字元時不會繼續讀取,截止字元將儲存於輸入緩衝中。

4 返回值型別不同。

gets的返回值為char*型,當讀入成功時會返回輸入的字串指標地址,出錯時返回null。

scanf返回值為int型,返回實際成功賦值的變數個數,當遇到檔案結尾標識時返回eof。

4樓:蘇小木偶

gets()函式的話會連zhanghao後面的回車也當做字元輸入了,對比的話肯定就是跟zhanghao不一樣;

5樓:古韻青花

gets函式和scanf函式都可以作為字串的輸入函式,

相同點:都是將從鍵盤輸入的字串存入陣列中,輸入完成後要以回車來結束輸入。

不同點:利用sanf時,在輸入過程中碰到空格時系統認為輸入結束,並將空格之前的字元作為有效字元存入陣列中,並在尾部追加\0作為結束標誌。利用gets時,空格符被看作是有效字元,也就是說只有碰到回車符時系統才認為輸入結束。

6樓:小羊裝狼

zhanghao = gets();是不是應該這樣

c語言中什麼是原型定義,C語言中函式的定義格式是什麼,函式原型宣告的語法格式?

我還直是不知道呢,我說說自己的理解吧,一個函式,可能在別外被引用或是在本檔案中但是要先引用了而後面才有函式定義,此時編譯器需要先行知道這個函式返回型別和引數類形,才可以正確的幫著做嚴格的資料型別和引數個數的檢查 如不提前申明就會當做是返回int 型,引數都當int型且不能檢查引數個數 這個函式在定義...

c語言中的pow函式怎麼使用,C語言中的POW函式怎麼使用

pow 函式用來求x的y次冪,x y及函式值都是double型 其原型為 double pow double x,double y 例項 如下 include include void main 擴充套件資料 在呼叫pow函式時,可能導致錯誤的情況 如果底數 x 為負數並且指數 y 不是整數,將會導...

C語言中什麼叫呼叫函式?為什麼函式和函式之間是呼叫關係

函式呼叫是指 簡單來講,假如小明是班長,小紅是本班的生活委員,小明要想收班費,但每個人都有不同的職責,而班長是用來組織和統籌工作的,而作為生活委員的小紅的職責之一就是收取和管理班費,所以這樣的話,小明只需讓小紅去做就行,也就是說只需發出指令給小紅就可以了,而小紅就是執行這項活動的承擔者 在這裡小紅就...