gpt4 book ai didi

c - 为什么这个 C 代码在我运行这段代码时不接受输入。这个程序在没有任何输入的情况下就已经存在

转载 作者:太空宇宙 更新时间:2023-11-03 23:36:50 24 4
gpt4 key购买 nike

#include <stdio.h> 

main()
{
int t,i;
scanf("%d",&t);

check();
return 0;
}

int check()
{
char s[20];
gets(s);

printf("%s",s);
return 1;
}

当我运行这个检查函数时,这个函数不接受输入并立即退出。我不知道为什么请告诉我

最佳答案

在 scanf 中的 %d 后面使用一个空格字符来读入输入值后面的空白。

换句话说,使用:

scanf("%d ", &t);

另请注意,gets 已被弃用多年。它容易受到缓冲区溢出攻击。请改用 fgets

这是这个程序的固定版本:

#include <stdio.h> 

#define CHECK_BUFSIZE 19

int check()
{
char s[CHECK_BUFSIZE+1];
fgets(s, CHECK_BUFSIZE, stdin);
printf("%s",s);
}

int main()
{
int t,i;
scanf("%d ",&t);
check();
return(0);
}

关于c - 为什么这个 C 代码在我运行这段代码时不接受输入。这个程序在没有任何输入的情况下就已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58449263/

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