首页 >>  正文

gets+s函数用不了

来源:baiyundou.net   日期:2024-09-21

怀钥思2648程序里面为什么第一个gets函数不能执行,直接跳过了~~(C语言) -
广弦树17145331746 ______ 你还是理解错了 gets(ch); 是读到一行结尾,存入ch 我猜你在gets之前,做过scanf之类的,scanf处理了数据,却把换行符留在那里没有处理 所以你gets得到的就只是一个空行了. getchar()的作用是读一个字符,用了它之后,就刚好吃掉了那个换行符,所以gets得以顺利运行. 你可以用一个while循环,反复gets,直到读出的不是空字串. 另外一个方法是不要scanf,而是定义一个缓存,然后用gets把所有数据都读到自己的缓存字符串中,再用sscanf从字符串而不是屏幕去读取数据. 看你的应用场合了

怀钥思2648大神帮忙看一下,一个C语言程序,运行到gets()函数处就停止了.能帮忙看看是为什么吗?谢谢了 -
广弦树17145331746 ______ gets函数是在等待你输入字符串啊,当然会停止啦.输入字符串,用回车结束后方可以继续运行.当然按照这个代码,字符串不能超过20个字节(包括结束符).

怀钥思2648c++ gets warning是什么原因? -
广弦树17145331746 ______ 不用管他,他想表达的意思是 gets() 这个函数不安全,建议不用,现在出了gets_s() 这个函数,但也不能说gets()已废弃

怀钥思2648C语言中调用gets()函数进行字符串输入时警告我gets is unsafe,是什么原因啊? -
广弦树17145331746 ______ gets不检查内存越界,本质上就是不安全的,可以改用微软提供的gets_s函数,或换用其他方法输入

怀钥思2648C语言gets函数的用法,能用代码举个例子么 -
广弦树17145331746 ______ /*1.不同点: scanf不能接受空格、制表符Tab、回车等; 而gets能够接受空格、制表符Tab和回车等; 2.相同点: 字符串接受结束后自动加'\0'. 使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,...

怀钥思2648C\C++语言中gets - s()在哪个函数库中? 形如iostream stdio.h stdlib.h等 -
广弦树17145331746 ______ gets_s是微软自创的函数,要用visual studio才行.平时可以用fgets,一样很安全,但不要使用gets

怀钥思2648C语言 gets()函数自动换行,如何解释?? -
广弦树17145331746 ______ 原因很简单,所有的字符串操作函数在作用时都会以White Space为结束符. White Space包括 回车(Cr Lf),空字符(NULL)等. 在程序中你用了gets(s),这个函数的意思就是接受你的输入,直到你输入一个White Space为止,如果你输入...

怀钥思2648C语言里的gets()函数 -
广弦树17145331746 ______ 对的,确实有举出漏洞.以下是个人建议,希望对楼主有所帮助.首先我们应该先认识一下gets和scanf的语法解构.如果要给一个字符串赋值,那我们可以这样做.int a[10];gets(a);或是for(i=0;i<10;i++)scanf("%d",&a[i]);由上我们可以看出,scanf每次只能输入一个字符,然后回车,继续循环.而gets呢,需要把所有的字符串都输入完后回车结束.这就造成了一个问题.如果我们输入的字符串多于10个单位呢?我们输入的“a[20]”个空间的字符.这就可能会产生溢出漏洞. 仅代表个人建议,希望对楼主有所帮助.

怀钥思2648c语言中,gets()和puts()函数与getchar()与putchar()函数有何区别 -
广弦树17145331746 ______ puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针),puts()函数的作用与语printf("%s\n", s)相同. gets()函数用来从标准输入设备(键盘)读取字符...

怀钥思2648写一个函数,输入十进制数,输出相应的十六进制数 -
广弦树17145331746 ______ #include<stdio.h> #include<math.h> #include<string.h> int main() { char a[10]; void convert(char a[]); printf("请输入十六进制数:"); gets(a);//输入十六进制数 convert(a); return 0; } void convert(char a[]) { int n,i,num=0; n=strlen(a); for(i=n-1;...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024