c语言 - 我的代码有什么问题?为什么获取函数不起作用?



我声明了3个变量。这里ch代表存储一个字符,s代表存储一个单词,sen代表一个句子或多个单词!但是,当我运行代码时,它没有机会为sen变量提供输入。

我已经试着找出这个问题。但是我失败了!我的代码有什么问题?有谁能帮我一下吗?

这是我的代码…

#include<stdio.h>
int main()
{
char ch, s[20], sen[100];
scanf("%c%s",&ch,&s);
gets(sen);
printf("%cn%sn%s", ch, s, sen);
return 0;
}

不应该使用gets函数来处理缓冲区溢出。用fgets()代替。

fgets()有3个参数。一个是STR>>>指向初始化字符串的指针,在该字符串中复制字符。它还返回str。

另一个是int n>>>要复制的字符数。

,最后是文件流或stdin>>>从标准输入读取。

使用

#include<stdio.h>
int main()
{
char ch;
char* s[20], sen[100];
scanf("%c%*cn", &ch);
scanf_s("%19s", s, 20);
fgets(sen, 100, stdin);
printf("%cn%sn%s", ch, s, sen);
return 0;
}

您缺少&sen,它应该接受输入。

最新更新