vs2019怎么編程c 用VA2019學C語言,出現(xiàn)問題:返回值被忽略:“scanf”。那個sdl檢測在哪關(guān)?
用VA2019學C語言,出現(xiàn)問題:返回值被忽略:“scanf”。那個sdl檢測在哪關(guān)?原因:ansicus()中沒有scanf,只有scanf(),但scanf()在讀取時不檢查邊界,因此可能導致內(nèi)存
用VA2019學C語言,出現(xiàn)問題:返回值被忽略:“scanf”。那個sdl檢測在哪關(guān)?
原因:ansicus()中沒有scanf,只有scanf(),但scanf()在讀取時不檢查邊界,因此可能導致內(nèi)存泄漏。所以微軟在vs中提供了scanf,如果你想繼續(xù)使用scanf這個不安全的函數(shù),可以通過以下方法解決:首先,在文件頂部添加代碼:#pragmawarning(禁用:4996)方法2:錯誤提示的原因是SDL check in vs;關(guān)閉步驟,右鍵單擊項目文件--> properties------------> C/C--------> all options--------> SDL check option變?yōu)镹o
scanf函數(shù)的返回值主要用來判斷輸入值的正確性。正確的輸入返回1。系統(tǒng)提醒主要是為了增強對編程安全性的理解。函數(shù)的返回值為int類型。2scanf()函數(shù)返回的值為:按指定格式正確輸入變量個數(shù),即可以正確接收值的變量個數(shù)。Scanf(%d%d“,&A,&B)如果a和B都讀取成功,Scanf的返回值為2。如果只成功讀取了一個,則返回值為1。如果a和B都未成功讀取,則返回值為0。如果遇到錯誤或文件結(jié)尾,則返回值為EOF。
scanf函數(shù)的返回值是什么?
您可以將scanf更改為scanfus,us表示這是安全的。
為什么編程總是說我忽略了scanf的返回值,很多次都這樣改不了了?
這意味著您不使用scanf的返回值。Scanf將返回正確的輸入變量數(shù)。一般來說,如果你不使用它,它只是一個警告。只需忽略它,它不會影響正確的操作如果您不希望它出現(xiàn),您可以使用變量來接收scanf的返回值,或者關(guān)閉compile options中的-wunused result
scanf函數(shù)來返回成功讀入的數(shù)據(jù)項數(shù)。如果在讀取數(shù)據(jù)時遇到“文件結(jié)束”,可以返回EOF。例如,scanf(%d%d“,&A,&B)函數(shù)的返回值為int。如果a和B都成功讀入,則scanf的返回值為2;如果只有a成功讀入,則返回值為1;如果a和B都未成功讀入,則返回值為0;如果遇到錯誤或文件結(jié)尾,則返回值為0EOF公司。文件的結(jié)尾是Ctrl Z或Ctrl D。擴展材料:注意(1)在visual studio編譯器的更高版本中,scanf被認為是不安全的,因此應使用scanf而不是scanf。(2) 對于字符串數(shù)組或字符串指針變量,由于數(shù)組名稱可以轉(zhuǎn)換為數(shù)組和指針變量,因此名稱本身就是地址,因此在使用scanf()函數(shù)時,不必在其前面添加“&”運算符。(3) 可以在格式字符串中的格式說明符“%”之間添加一個整數(shù),以表示任何讀取操作中的最大位數(shù)。(4) 在scanf函數(shù)中沒有像printf那樣的精度控制。Scanf(%5.2f“,&A)是非法的。您不能嘗試用此語句輸入小數(shù)點后兩位的實數(shù)。(5) scanf中需要變量的地址。如果給定了變量名,則會發(fā)生錯誤。如果scanf(%d”,a)是非法的,則scanf(%d”,&A)應更改為合法的。(6) 當輸入多個數(shù)值數(shù)據(jù)時,如果格式控制字符串中沒有非格式字符作為輸入數(shù)據(jù)之間的間隔,則可以使用空格、制表符或回車符作為間隔。當C編譯器遇到空格、制表符、回車或非法數(shù)據(jù)時(例如,當“12a”被輸入到“d”時,a是非法數(shù)據(jù)),則認為數(shù)據(jù)結(jié)束。