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

posted @ 2020-03-15 16:38  宋思坡201921123103  阅读(3607)  评论(2编辑  收藏  举报