c语言字符串gets()函数使用,编译为什么通过不了?

c语言字符串gets()函数使用,结果好像有安全问题?也试过改成gets_和 fgets(大一学习c语言,求大神指导)

#include <stdio.h>
#pragma warning
void main()
{
    char phoneNumber[12];
    printf("请输入手机号码:");![图片说明](https://img-ask.csdn.net/upload/201907/04/1562246312_875481.jpg)

    gets(phoneNumber);
    printf("您的手机号码是:%s\n", phoneNumber);
}
weixin_44790790
Rigis 将 gets(phoneNumber); 改为 gets_s(phoneNumber, 80); 就行,因为报错 可调用的参数太少,加上80后参数增加了
大约一年之前 回复

1个回答

估计你用的是vs2013/15/17/19
gets是不安全的函数,默认是禁止的
可以用gets_s代替
或者,项目属性 -- C/C++-- 预处理器 -- 预处理器定义,添加 _CRT_SECURE_NO_WARNINGS
在程序开头添加

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE
#pragma warning(disable:4996);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问