精华内容
下载资源
问答
  • c语言gets()的用法
    千次阅读
    2022-04-20 22:51:17

    c语言gets()函数不能使用

    现在的c语言使用gets()函数需要在主函数main()前进行声明

    #include<stdio.h>
    char *gets (char *str);//声明
    int main()
    {
        char c[20];
        gets(c);
        
        puts(c);
        return 0;
    }
    

    不要问为什么,你在搜索这个问题的时候已经知道了!!!

    用fgets()代替gets()

    fgets(c, sizeof(c), stdin);  //与gets(c)等效
    
    更多相关内容
  • c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回。如果要读取一行字符串,比如: I love BIT 这种情况,scanf()就无能为力了。这时我们最先想到...
  • gets函数,C语言gets函数详解

    万次阅读 多人点赞 2021-08-24 14:17:35
    gets函数,C语言gets函数详解 在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法,即使用 gets() 函数。该函数的原型为: # include <stdio.h> char *gets(char *str); 这个函数很简单,只有...

    gets函数,C语言gets函数详解

    在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法,即使用 gets() 函数。该函数的原型为:

    # include <stdio.h>
    char *gets(char *str);
    

    这个函数很简单,只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。

    gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。

    下面将前面中使用 scanf 输入字符串的程序改一下:

    # include <stdio.h>
    int main(void)
    {
        char str[20] = "\0";  //字符数组初始化\0
        printf("请输入字符串:");
        gets(str);
        printf("%s\n", str);
        return 0;
    }
    

    输出结果是:
    请输入字符串:i love you
    i love you

    可见,gets() 函数不仅比 scanf 简洁,而且,就算输入的字符串中有空格也可以直接输入,不用像 scanf 那样要定义多个字符数组。也就是说:

    gets(str);
    

    完全可以取代:

    scanf("%s", string);
    

    不仅代码更简洁,而且可以直接输入带空格的字符串。同样,前面章节中,对字符指针变量所指向的内存单元进行初始化也可以用 gets(),下面将那个程序也改一下,将 scanf 换成 gets():

    # include <stdio.h>
    int main(void)
    {
        char str[30];
        char *string = str;  //一定要先将指针变量初始化
        printf("请输入字符串:");
        gets(string);  //也可以写成gets(str);
        printf("%s\n", string);  //输出参数是已经定义好的“指针变量名”
        return 0;
    }
    

    输出结果是:
    请输入字符串:Hi i…like you
    Hi i…like you

    此外,关于使用 gets() 函数需要注意:使用 gets() 时,系统会将最后“敲”的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符。这就意味着,如果前面使用过 gets(),而后面又要从键盘给字符变量赋值的话就不需要吸收回车清空缓冲区了,因为缓冲区的回车已经被 gets() 取出来扔掉了。下面写一个程序验证一下:

    # include <stdio.h>
    int main(void)
    {
        char str[30];
        char ch;
        printf("请输入字符串:");
        gets(str);
        printf("%s\n", str);
        scanf("%c", &ch);
        printf("ch = %c\n", ch);
        return 0;
    }
    

    输出结果是:
    请输入字符串:i love you
    i love you
    Y
    ch = Y

    我们看到,没有清空缓冲区照样可以输入’Y’,因为 gets() 已经将缓冲区中的回车取出来丢掉了。如果前面使用的不是 gets() 而是 scanf,那么通过键盘给 ch 赋值前就必须先使用 getchar() 清空缓冲区。

    展开全文
  • 原因是gets函数在获取键盘输入时不会判断目标的空间,会造成越界,因此编译器报错提示这是不安全的函数。此时可用fgets函数代替。

    C语言使用gets函数时编译代码报错:
    在这里插入图片描述
    原因是gets函数在获取键盘输入时不会判断目标的空间,会造成越界,因此编译器报错提示这是不安全的函数。此时可用fgets函数代替。

    展开全文
  • c语言puts和gets用法

    2021-05-23 06:55:58
    c语言puts和gets用法2020-03-31在语言使用过程中我们常常用到库函数,这些库函数是又人事先编译好的,那么它们内部的代码究竟如何?我们可以根据各函数的说明及其功能编译出同样的函数。下面我们来看看c语言puts和...

    c语言puts和gets的用法

    2020-03-31

    在语言使用过程中我们常常用到库函数,这些库函数是又人事先编译好的,那么它们内部的代码究竟如何?我们可以根据各函数的说明及其功能编译出同样的函数。下面我们来看看c语言puts和gets的用法分别是什么。  #include "Stdio.h"  #include "Conio.h"  char *mygets(char s[])  { int i;  for(i=0;s[i]!='\n';i++)  s[i]=getchar();  return s;  }  int myputs(char *str)  {  int i;  for(i=0;*str!='\0';i++)  { putchar(*str);  str++;  }  return;  }  main()  {  char *p;  myputs(gets(p));  getch();  }  从mygets函数的说明部分char *mygets(char s[])可以看到,该函数以字符指针变量为形参,最后返回一个字符指针变量。再看看函数体部分:int i; for(i=0;s[i]!='\n';i++)  s[i]=getchar();for循环中将getchar()输入的字符存放到动态数据s[ ]中,循环条件是:s[i]!='\n' ,即是遇到回车时退出循环。  myputs函数以字符指针变量为形参返回一个整形数。for(i=0;*str!='\0';i++)的意思是:从字符串的第一个字符开始循环,直到这个字符串结束就退出for循环,'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。for循环循环体通过指针变量的移动将指针所指向的字符串逐个输出,putchar(*str)是输出指定字符,str++是移动指针。  主函数中以新定义的指针变量p为mygets函数的实参,然后mygets函数的返回值作为myputs的实参。

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

    http://www.pinlue.com/style/images/nopic.gif

    展开全文
  • 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的“互联网蠕虫”,它在 UNIX 操作系统的 finger 后台程序中使用一个 gets 调用作为它的攻击方式之一。很显然,对蠕虫病毒的实现来说, gets 函数的功劳不可...
  • 字符串的输入 gets函数 字符的输入 scanf函数
  • 克服C语言gets函数缺陷的方法初探

    千次阅读 2021-05-20 17:34:15
    克服C语言gets函数缺陷的方法初探一 gets函数简介gets函数是C语言用于从stdin流中读取字符串的函数。gets函数接收用户从键盘上输入的字符直到遇到回车时终止。原型是:char* gets(char *buff);举例:#include int ...
  • 主要给大家介绍了关于在Linux系统下C语言gets函数出现警告问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • C语言-gets函数

    万次阅读 多人点赞 2020-03-20 20:43:37
    gets函数 gets函数原型:char *gets(char *str) 功能:从stdio流中读取字符串直到遇到换行符或者EOF时停止,并将读取的结果存放在str指针所指字符数组中换行符不作为读取内容 ,读取的换行符被转换为NULL值 并由此...
  • c语言gets()函数bug!

    2021-03-08 00:55:31
    c语言gets()函数bug! gets()函数存在一个严重的缺陷,这个缺陷就是:它不会检查数组是否能够装的下输入行,我们定义了一个数组char src[5],这时候我们调用gets(src),来从标准输入读取字符串,我们看到gets()函数...
  • 在Linux下,使用gets(cmd)函数报错:warning: the 'gets' function is dangerous and should not be used.解决办法:采用fgets(cmd,100,stdin);//100为size问题解决!fgets从stdin中读字符,直至读到换行符或文件...
  • c语言gets()的详细用法

    万次阅读 多人点赞 2019-10-08 07:15:21
    gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。 从stdin流中读取字符串,直至接受到换行符或EOF时停止,...
  • C语言gets()和get_s()函数

    万次阅读 多人点赞 2020-02-24 13:11:14
    C语言gets()和get_s()函数 介绍 gets()可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值,由于可以无限读取,所以在2011年12月,ANSI ...
  • C语言gets 和 getchar 有什么区别

    千次阅读 2021-05-21 04:04:13
    C语言gets 和 getchar 有什么区别发布时间:2020-07-22 09:14:29来源:亿速云阅读:81作者:Leah这期内容当中小编将会给大家带来有关C语言gets 和 getchar 有什么区别,文章内容丰富且以专业的角度为大家分析...
  • 使用C语言gets函数和gets_s函数,读取含空格的字符串
  • C语言中scanf和gets

    2022-03-16 14:39:02
    目录scanf()的说明和使用gets()的说明和使用scanf("%s")和gets()的区别关于~和EOF scanf()的说明和使用 scanf(完成函数为int scanf(const char *format, …))属于库函数<stdio.h>,函数从标准输入流 stdin ...
  • 先来讲讲大家最熟悉的gets()函数。1.gets()函数不安全。2.C11标准委员会已经将其废除,建议能不用尽量不用。解释:gets()函数的作用:它读取整行输入,直至遇到换行符,然后丢弃换行符,储存其余字符,并在其末尾添加...
  • 使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止*/#include "stdio.h"#in....
  • c语言gets()函数不执行/被跳过

    千次阅读 多人点赞 2021-03-28 08:15:47
    } 使用gets()函数接收书名 但是在运行的时候,gets函数没有执行,被跳过执行后面的语句了。 后来找到答案是因为: 之前scanf的时候,会遗留一个’\n’在缓冲区里, 因此,gets()误将这个回车作为了它的输入。 应在...
  • 由入门C语言题目浅析gets()函数的用法

    千次阅读 多人点赞 2020-06-25 15:31:16
    gets(ss);strcat(ss,“6789”); printf("%s\n",ss); return 0; } 在逛论坛的时候遇到了如上的一个问题,目测应该是二级题库或者水平考试的题目, 题目本身不难,我也顺手给坛友回复了自己的看法: 没曾想这个问题还...
  • c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回。如果要读取一行字符串,比如: I love BIT 这种情况,scanf()就无能为力了。这时我们最先想到...
  • C语言的字符串输入函数gets_s()

    千次阅读 2020-06-26 21:11:33
    C语言的字符串输入函数gets_s() C11新增了gets_s()函数(可选),和fgets()函数类似(上一篇博客有介绍《 C语言的字符串输入fgets()函数 》),用一个参数限制读入的字符数。gets_s()函数的形式如下: gets_s(words...
  • (其实不知道写什么第一代 gets(函数首先呢,gets()函数简单易用,它读取整行输入,直至遇到换行符(\n,然后丢弃换行符,储存其余字符,并这些字符的末尾添加一个空字符 使其成为一个 C 字符串。它经常和 puts()函数...
  • C语言--gets()、gets_s()、fget()的比较
  • c语言字符串gets()函数使用,结果好像有安全问题?也试过改成gets_和 fgets(大一学习c语言,求大神指导) ``` #include #pragma warning void main() { char phoneNumber[12]; printf("请输入手机号码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,156
精华内容 6,062
关键字:

c语言gets()的用法

友情链接: ffnal_cyclic.rar