在Visual Studio中使用scanf语句


在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,可让在控制台下输入字符串更加方便。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM