读书人

求解 一个小疑点

发布时间: 2013-07-01 12:33:04 作者: rapoo

求解 一个小问题
#include<stdio.h>
void main()
{
char str[10], m;

printf("please input string:\n");
scanf("%s",str); printf("please input a char:\n");
scanf("%c",&m);
}
输入一个字符串到str[10],输入一个字符给m,
为何会出现下面的情况:求解 一个小疑点

无法 进行输入字符 就直接结束了???
求解。。。 C
[解决办法]
scanf("%s",str); printf("please input a char:\n");
getchar(); //加个getchar收enter
scanf("%c",&m);
[解决办法]
在两个scanf中间加一句fflush(stdin);刷新一下缓冲区
[解决办法]
其实你已经输入了两个东西,一个是字符串,一个是【Enter】键。
分别被两个scanf接收。
通过getchar()可以消化掉一个。
不过这个方法比较土。
你该用puts/put和gets/get函数。
[解决办法]
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

读书人网 >C语言

热点推荐