morant 9 2022-12-23 21:03 采纳率: 100%
浏览 27
已结题

为什么我的gtes不能用 下面是什么意思

gets不能用

#include<stdio.h>
#include<string.h>
int main()
{
    int i=0;
   char a[31];
   gets(a);
    while(a[i]!='#')
    {
        if(a[i]>='A'&&a[i]<='Z')
            a[i]=a[i]-'A'+'a';
        else  if(a[i]>='a'&&a[i]<='z')
          a[i]=a[i]-'a'+'A';
           i++;
    }
    for(i=0;a[i]!='#';i++)
    {
        printf("%c",a[i]);
    }
    return 0;
}
a.c: In function ‘main’:
a.c:7:4: warning: ‘gets’ is deprecated [-Wdeprecated-declarations]
    gets(a);
    ^~~~
In file included from /usr/include/stdio.h:862:0,
                 from a.c:1:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:232:1: note: declared here
 gets (char *__str)
 ^~~~
a.c:7:4: warning: ignoring return value of ‘gets’, declared with attribute warn_unused_result [-Wunused-result]
    gets(a);
    ^~~~~~~
/tmp/cc3oWUvp.o: In function `main':
a.c:(.text.startup+0x22): warning: the `gets' function is dangerous and should not be used.
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-12-23 21:45
    关注

    gets_s函数对应头文件<stdio.h>
    原型:char *gets_s(char *buffer,size_t sizeInCharacters);
    调用形式:gets_s(buffer,sizeInCharacters) ;
    在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准,标准中删除了 gets()函数,使用一个新的更安全的函数gets_s()替代。

    //摘自百度百科
    #include <stdio.h>//gets_s()用法
    #define CH 20
    int main(void)
    {
        char ch[CH];
        printf("请输入你的名字:\n");
        gets_s(ch,CH); //这里不能用gets_s(ch);
        printf("这是你的名字:%s\n", ch);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 请采纳用户回复 12月25日
  • 创建了问题 12月23日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效