我声明了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。
,最后是文件流或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
,它应该接受输入。