原文:為什么在c語言中使用gets函數是危險的

If you have code like this: and you type in more than characters when the program is run, you will overflow the buffer, causing undefined behaviour. The gets function has no means of preventing you t ...

2016-09-06 18:23 0 1826 推薦指數:

查看詳情

C語言中gets()函數

c語言中讀取字符串有多種方法,比如scanf() 配合%s使用,但是這種方法只能獲取一個單詞,即遇到空格等空字符就會返回。如果要讀取一行字符串, 比如:I love MIT 這種情況,scanf()就無能為力了。這時我們最先想到的是用gets()讀取. C標准庫中的 gets() 函數 ...

Wed Jun 10 11:14:00 CST 2020 0 736
c語言中gets()的詳細用法

gets從標准輸入設備讀字符串函數。可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。 從stdin流中讀取字符串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字符數組中。換行符不作為讀取串 ...

Sun Sep 10 06:04:00 CST 2017 2 11955
[其他] 關於C語言中使用未聲明函數的問題

c語言中,碰到一個.c文件,無.h頭文件,在另一.c文件調用函數時,並沒有進行聲明extern, 此時編譯器不會報錯,會默認去查找同名的函數,這樣會存在一些問題,查了些資料,稍微總結了下: 總結: 1.聲明函數可以不加extern,函數默認extern。2.聲明變量必須要加 ...

Tue Apr 11 23:43:00 CST 2017 0 3083
C語言中static的作用及C語言中使用靜態函數有何好處

轉自:http://www.jb51.net/article/74830.htm 在C語言中,static的作用有三條:一是隱藏功能,二是保持持久性功能,三是默認初始化為0。 在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條,分別是: 一是隱藏功能 ...

Wed May 02 23:17:00 CST 2018 0 2994
Linux 下使用C語言 gets()函數報錯

在Linux下,使用 gets(cmd) 函數報錯:warning: the 'gets' function is dangerous and should not be used. 解決辦法:采用 fgets(cmd,100,stdin);//100為size 問題解決 ...

Tue Dec 15 06:54:00 CST 2015 0 2537
C語言 scanf()和gets()函數的區別

C語言 scanf()和gets()函數的區別 1.相同點:scanf( )函數gets( )函數都可用於輸入字符串 2.不同點:兩者在功能上有所區別,具體區別如下: 要實現如下需求“從控制台輸入字符串”有如下兩種實現方式: 1>使用gets()函數實現 使用 ...

Mon Sep 25 03:08:00 CST 2017 0 4281
C語言 gets()和scanf()函數的區別

scanf( )函數gets( )函數都可用於輸入字符串,但在功能上有區別。若想從鍵盤上輸入字符串"hi hello",則應該使用 gets 函數gets可以接收空格;而scanf遇到空格、回車和Tab鍵都會認為輸入結束,所有它不能接收空格。 char string[15]; gets ...

Sat Dec 19 02:49:00 CST 2015 0 4893
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM