本文目录一览:
- 1、VS2010里编C程序不能用scanf()吗?
- 2、c语言scanf和scanf_s的区别,详解
- 3、VS2019的C语言问题,scanf的为什么返回值被忽略了?我用学校机房的VC++6.0写就没问题
- 4、C语言在vs2019中scanf输出问题?
- 5、求大虾,c语言问题,vs2010中scanf错误问题
- 6、visual studio 2013 在编C语言时怎么使用scanf函数啊?
可以用。
scanf的声明在VS中被认为是不安全的,让用户使用scanf_s来代替,只要在#include stdio.h前面添加:
#define _CRT_SECURE_NO_DEPRECATE
或者 scanf函数修改为scanf_s即可。
扩展资料:
scanf函数原型
int scanf(const char * restrict format,...);
函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。
参考资料来源:百度百科-scanf (计算机语言函数)

1、使用区别
scanf()不会检查输入边界,可能造成数据溢出。
scanf_s()会进行边界检查。
2、意思
scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;
对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值。
因为带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。
3、scanf_s()参数与scanf()不同
例如scanf(“%s”,name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小。
scanf函数的原型如下:
int scanf(const char * restrict format,...);
scanf的为什么返回值被忽略的原因是你的代码中没有使用scanf的返回值。
最简答的解决方案是强制忽略返回值:
(void) scanf("%d", m);
另外一种方法是定义一个临时变量接收scanf函数的返回值。
int ret = scanf("%d", m);
这个编译器还有一个错误,它建议你不要用scanf,而是改为用scanf_s。
用scanf_s是微软自己的规范,不是C语言规范。如果在vs2019使用scanf。
就在程序最前面加一行:#define_CRT_SECURE_NO_DEPRECATE
这是警告,不是错误。可以忽略。
scanf不检查边界,这是scanf自身的特性。 这个警告是说为了增加安全性,可以用scanf_s来代替。但是scanf_s不是ansi C函数,写出的代码失去了良好的可移植性,不建议使用。如果只是练习,这些都不需要考虑,用scanf即可。
也可以看看这个回答:
你使用的Scanf应该小写
你使用scanf在VS2013下是非线程安全函数,不能使用,需要修改安全属性
你应该是用安全的scanf_s替换scanf
如果一定要使用scanf,那么在项目属性页面,添加_CRT_SECURE_NO_WARNINGS宏
到此这篇vs怎么用c语言(vs2019中c语言怎么用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/goyykf/34099.html