在Visual Studio中使用scanf語句
一.問題
在使用代碼處理控制台輸入的時候,會遇到一些輸入問題。
C++中的cin與C中的scanf處理輸入的時候,略有不同。
例如:
輸入數據樣例:
這道題我的思路是將輸入的樣例保存到一個數組中,判斷數組結尾的最后兩個字符為"."和回車結束輸入,最開始使用cin<<str[i]會發生段錯誤,cin不接受回車,無法結束輸入,只能考慮scanf
scanf可以很好地讀到回車並使循環結束。
但是scanf直接在未調試的VS上編譯的話,系統會報錯,因為scanf在c++中不安全,像這樣:
那如何在VS中使用scanf呢?
二.解決方法
鼠標右擊項目---->屬性---->點擊c/c++---->找到SDL檢查改為否
改完之后就可以正常運行了:
PS:VS是2017以上的版本才出現scanf報錯這個問題
三.結論
1.在Visual Studio中使用scanf語句需修改sdl;
2.在Visual Studio中使用cin則不會碰到scanf所遇見的問題;
使用cin的解決方案如下:
先定義一個string s,使用while循環讀入每一行的數據,每一行以回車結束,直到最后一行輸入'.'循環結束。
樣例:while (cin >> s && s != '.'){...}
,每次循環處理每一行的數據。
可以看出,結合string與cin,可讓在控制台下輸入字符串更加方便。