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