首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求解 一个小疑点

2013-07-01 
求解 一个小问题#includestdio.hvoid main(){ char str[10], mprintf(please input string:\n)scanf

求解 一个小问题
#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的返回值。

热点排行