getchar什么执行不了

C语言 码拜 9年前 (2016-04-05) 1469次浏览
#include<stdio.h>
int main()
{
char ch,h;
printf(“请输入ch字符:\n”);
ch=getchar();
if(ch==”6″)
{
h=getchar();
}
else
{
printf(“ch字符为:”);
putchar(ch);
printf(“\n”);
}
printf(“请输入ch字符:\n”);
ch=getchar();
return 0;
}
为什么这里面的h=getchar()不执行,而是直接跳出
解决方案

60

原因是你第一句ch = getchar();仅仅只是读掉了输入缓冲区中的一个字符(还遗留了回车符)
所以程序后面的ch = getchar();会直接读走回车符而不会等待输入,加一句fflush(stdin);才行

#include<stdio.h>
int main()
{
	char ch, h;
	printf("请输入ch字符:\n");
	ch = getchar();
	fflush(stdin);
	if (ch == "6")
	{
		h = getchar();
	}
	else
	{
		printf("ch字符为:");
		putchar(ch);
		printf("\n");
	}
	printf("请输入ch字符:\n");
	ch = getchar();
	return 0;
}

10

1楼说的对,
根本原因就是输入缓冲区里面有不是你期望的数据。不同的环境可能清空缓冲区的函数和方法不一样,上baidu搜索一下,找到合适的函数就好了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明getchar什么执行不了
喜欢 (0)
[1034331897@qq.com]
分享 (0)