【发布时间】:2022-11-18 04:27:34
【问题描述】:
我想为 a 和 b 输入 valors,a 是一个 int,b 是一个 str。当我运行我的程序时,我可以输入一个 valor,但随后它会忽略 b 的 printf() 和 gets()。
#include<stdio.h>>
int main()
{
int a;
char b[5];
printf("Write a:\n");
scanf("%i", &a);
printf("Write b:\n");
gets(b);
printf("a = %i, b = %s", a, b);
return 0;
}
最后,它只是打印:
a = (valor written), b =
我不知道这有什么问题,也不知道它是否是一种不同的工作方式。我是 C 的新手。提前谢谢你。 ;)
【问题讨论】:
-
最好使用
fgets(b, sizeof b, stdin);。请记住,对于用户输入,您可能不得不满足于换行符,并且不要忘记在缓冲区中为空终止符留出空间。因为您只有 3 个字符的用户输入空间。 -
gets已从C11中删除,因此这可能会在您的验证器中造成一些混乱。
标签: c printf scanf codeblocks gets