为什么说scanf不安全

作者&投稿:糜欢 (若有异议请与网页底部的电邮联系)

C语言中scanf后面,什么情况下不加符号&
函数返回值:scanf()函数操作成功时,返回成功赋值的数据项数,出错时则返回EOF。格式化字串一般包括 : %s(字符串) %c(单字符) %d(整数) %lf(double) %f(float) ,后面的argument一定要是地址类型变量,当变量名就是对应的指针变量时,就不需要加&符号了。 &是地址运算符,意思是获得...

在C语言中scanf能作为用户标示符么?为什么?scanf不是关键词么?_百度知 ...
举个例子:include<stdio.h> int main(){ int scanf=12;printf("%d\\n",scanf);return 0;} 当然如果你记不住关键词的话,在c\/c++编译系统里,那些有(蓝)颜色的词就是了,很容易看出来的。如 但是,如果出现下面这种情况就不行了。include<stdio.h>int main(){ int scanf;scanf("%d"...

为什么有时不应该用scanf()来接收数据?
预先不知道用户会输人哪种类型的数据 有时,你已经准备好要接受用户的输入,但你不知道用户将输入一个数字,还是一个词,或者是某个特殊的字符。在这种情况下,你必须按某种中性格式,例如字符串,来接受用户的输入,并且在继续下一步操作之前判断输入的数据是哪一种类型。此外,scanf()还会带来这样一...

为什么在C语言中,用scanf输入字符串时,不需加&
因为字符串变量名在 scanf 语句里 表示指针 (地址)例如:char s[80];scanf("%s",s); --- 这里的s 已是地址。当然,写成 scanf("%s",&s[0] ); 也可以, &s[0] 是地址。

vs中scanf怎么用不了
前几天刚回答一个一样的问题 VS的SDL选项是编译器在源代码层次尽最大可能减少安全漏洞的数量和严重性,比如scanf这样的函数在目前看来就是不安全的,可能会溢出导致崩溃,打开这个选项,那么这类函数将视为错误,以前的版本默认是关闭SDL选项的,在学习阶段关闭SDL会少很多限制 在建立项目时把安全开发...

c语言里,scanf("%s",chars); 如果我一直输入空格,它就一直不会读取是...
scanf根本不读入空格当然是从第一个非空格读入),详细地说,当我们输入数据时,在按下回车键前输入的数据都储存在缓冲区,按下回车键后,会把数据及换行符一起传送到标准输入流中,scanf就是从标准输入流中读取数据,它会在其中查找,跳过空白符(空格 换行符 制表符)(scanf不能读取空白符的原因...

scanf输入字符串会不会读取回车?
不会。scanf()是C语言中的一个输入函数。形式:int scanf(const char * restrict format,...);format指向的字符串包含的格式指令中的s读入一个的字符序列,后面会加上空字节,遇到空白字符(\\t \\r \\n 空格等)完成读取。scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。

C语言程序 ,不是说不能要求scanf函数指定输入长度吗?
不对,scanf只是不能指定输入精度而不是长度 比如%m.nf这种格式是不允许的,但可以使用%mf(其中m和n都是整数)不过对于%s输入字符串来说,指定长度没有用,其它的类型都能用 这题应选B,变量a只有2位长度

scanf函数要不要带参数?
scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d\\n”,a,b,c);} 运行情况:3 4 5 (回车) (输入a,b,c的值)3,4,5 (输出a,b,c的值)使用scanf函数时应注意的问题 :(1)scanf函数中的“格式控制”后面应当是变量地址,而不应 是变量名。(2) 如果在“格式控制”字符串中除了...

...还要scanf,不都是输入码?scanf起什么作用啊?
其中printf()是输出函数,就是你让它显示什么东西,那个数值的,其调用是printf("%!",(变量,里面已经有数值啊)),scanf("!",&变量(只要是地址就行呵呵)),这里的!是你要输入或者输出的类型啊,整形是d,字符型是c;scanf()函数就是你从键盘输入的数据啊,呵呵希望能帮到你 ...

毛贝14715625538问: 为什么说scanf函数不安全? -
竹溪县表实回答: 用的vs吧 vs的编译器人会一些函数如果调用不当会造成内存泄漏、非法访问、溢出等问题,因此会出这么个警告,scanf就是其中之一 不用理会他,或者把警告关闭即可

毛贝14715625538问: C语言中printf,scanf不安全? -
竹溪县表实回答: 这个在c++中存在开发安全周期的问题,如果你用Vs2013编写c ,那么它会报错,让你换成scanf_s,printf应该是安全的

毛贝14715625538问: C语,scanf出错了,不知道怎么回事
竹溪县表实回答: 应该是scanf("%d",&amp;q); 提示是说scanf可能不安全,主要是因为scanf使用了指针,可以使用流代替

毛贝14715625538问: error C4996: 'scanf': This function or variable may be unsafe. -
竹溪县表实回答: 提示的英文很明确啊,就是告诉你scanf不安全,建议改用scanf_s,你在scanf后面加_s就可以了. C语言的标准函数中,一些读取或写入内存的函数存在内存越界的问题,从而使得内存数据变得不安全.如scanf、gets、strcat等函数都存在着这...

毛贝14715625538问: 这个C语言scanf语句为什有错 -
竹溪县表实回答: 这是新版vc库添加的警告 因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界 所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患 详细避免见:http://www.cnblogs.com/gb2013/archive/2013/03/05/SecurityEnhancementsInTheCRT.html

毛贝14715625538问: C语言输出错误 -
竹溪县表实回答: int main() { char card_name[3]; int val = 0; puts("输入卡牌名:"); scanf_s("%s",card_name,3); //scanf("%s",card_name); //printf("str:%s\n",card_name); if(card_name[0] == 'K') { val = 10; } else if(card_name[0] == 'Q') { val = 10; } else ...

毛贝14715625538问: 用vs2013编C,scanf函数报错
竹溪县表实回答: 是warning而非error吧. scanf不安全,是指在读入数据时不检查边界,尤其是处理字符串时容易发生越界. scanf_s,优点就是读入数据时可以指定其长度.具体用法自己搜一下就有了,百科里也有一个词条. 要注意一点,这些xxx_s的函数并不是统一的标准,不是所有的编译器都支持.

毛贝14715625538问: C语言里的自增函数 -
竹溪县表实回答: 举个比较容易懂的例子.如a=M++;那么a=M,M=M+1.M=3时,a=3,M++为4,即M=M+1=4. 你刚才问的解答一下 a=x++; a=x=3,x=x+1=1+3=4;b=x++; b=x=4,x=x+1=4+1=5; c=x++; c=x=5,x=x+1=5+1=6; 故 x=6,m=a+b+c=3+4+5=12.

毛贝14715625538问: 编程中没有报错但出现了warning -
竹溪县表实回答:编程中没有报错而出现warning有以下几个原因: 1 使用了不安全的旧函数,例如scanf,sscanf等.这种warning往往是4996 2 使用了不合规范的编码方式,例如声明了本地变量,却...

毛贝14715625538问: C Primer plus,程序清单9.9and9.10and9.11,这个在VS2015要怎么实现,为什么scanf这么多问题 -
竹溪县表实回答: 没什么问题,英文提示很明确,就是告诉你scanf不安全,改为scanf_s


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网