c语言中用scanf函数先输入字符串,后输入数值。输出时会出现错误的数值,怎么解决

2024-12-05 15:51:09
推荐回答(5个)
回答1:

#include
int main()
{
char str[50];
int a;
scanf("%s%d",str,&a,&a);
printf("str=%s\n",str);
printf("a=%d\n",a);
return 0;
}

你下面的代码我给你改了一下,把%s%d之间的空格去掉了,然后加了一个&a,通过两次赋值,消除缓冲中回车的干扰

回答2:

char buf[200];
int i;
scanf("%s %d",buf,&i);
这样应该可以,注意字符串不能包含空格。

回答3:

scanf()函数是个阻塞函数,只有等待你输完之后,才能把缓冲区中的数据交给内存。有可能是你的输入有问题,另外scanf()中一般不要有格式控制,他是个不安全的函数。

回答4:

#include
int main()
{
char str[50];
int a;
scanf("%s %d",str,&a);
printf("str=%s\n",str);
printf("a=%d\n",a);
return 0;
}

回答5:

请把你的程序贴上来,这样才能帮你解答,这样太宽泛了。错误之处有很多呢!