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語言中清屏函式是什麼?
莊生曉夢 c語言中清屏函式是為清除螢幕上的輸出功能,用法是 void clrscr void 程式例 include int main int i clrscr for i 0 i 20 i cprintf d r n i cprintf r npress any key to clear scre...
c語言中,函式返回值怎麼用,c語言中呼叫函式如何返回多個值?
斑駁丶4129仉 一般用0表示函式執行正確,正常返回 用負數表示函式執行出錯,每個值可以提前定義,根據出錯的值進行出錯處理。誠心為您解答每一個問題!如您滿意請採納最佳!如有疑問請繼續追問!您的好評是我們前進的動力,相互幫助,一起進步! return後接一個值。在呼叫這個函式的函式裡面,呼叫它的時候希...
C語言中的sprint函式問題,C語言中迴圈問題
好程式設計師 sprintf函式原型為 int sprintf char str,const char format,作用是格式化字串,具體功能如下所示 1 將數字變數轉換為字串。2 得到整型變數的16進位制和8進位制字串。3 連線多個字串。舉例如下所示 1 char str 256 2 int d...