gpt4 book ai didi

c - gets() 函数抛出异常?

转载 作者:行者123 更新时间:2023-11-30 19:30:25 25 4
gpt4 key购买 nike

void getInputWith_gets()
{
char firstName[5];
char lastName[5];
printf("Enter your first name: ");
gets(firstName);
printf("Enter your last name: ");
gets(lastName);
printf("Hello, %s, %s\n", firstName, lastName);
}

int main(int argc, char **argv)
{
getInputWith_gets();
//getInputWith_fgets();
system("pause");
return 0;
}

我正在使用 MS Visual Studio 2017,我知道使用“gets()”函数的限制,即我最多可以输入 5 个字符,但如果我输入正好 5 个字符,控制台会正确打印(并且不会不打印“按任意键继续...由于“系统(“暂停”)语句”),但程序卡在调试器屏幕上,在最后一个“printf”语句之后,我得到一个带有弹出窗口的红色错误符号上说:“运行时检查失败#2 - 变量‘lastName’周围的堆栈已损坏。”这是否意味着“gets()”函数只能读取 5 个独占字符?

最佳答案

这里有多个错误:

还要注意函数格式 void getInputWith_gets()是过时的风格,你应该写 void getInputWith_gets(void) .

总的来说,您似乎是从一个完全过时的来源(已经过时了 20 多年)学习 C。

关于c - gets() 函数抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51042047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com