❶ c语言:为什么会没有字符的输入,请指出哪里错了,应该怎么改。
# include<stdio.h>
void main()
{
float a,b,sum;
char d;
printf("请输入两个数字\n");
scanf("%f",&a);
scanf("%f",&b);
while(getchar()!='\n')continue;//加上这句就可以了
printf("选择算法 '+','-','*','/'\n");
scanf("%c",&d);//这里,上面scanf输入接收后的回车符被这个scanf接收了,把上面输入后的回车符去掉就可以了
switch(d)
{
case '+':sum=a+b;break;
case '-':sum=a-b;break;
case '*':sum=a*b;break;
case '/':sum=a/b;break;
}
printf("%.0f%c%.0f=%.0f\n",a,d,b,sum);
}
❷ c语言问题 为什么没有提示输入字符 改成 choice=getchar()也不行,改成choice=getch()才可以 详细一下
这是由于输入流的问题,缓冲区内还存在数据,读写的时候直接就赋给了 变量choice。
你要注意,在处理字符类型的输入时地注意缓冲区是否还留有数据,有可能是个回车(一般情况下)。所以在读入字符型语句前,比如 scanf("%c",&choice); 前加 getchar(); 语句,这样就不会有问题了,或者也可以使用 fflush(stdin); 直接清空输入流。那位说用 scanf("%s",&choice); 这种字符串处理代替字符,其实这种方法在所有数据都是字符时使用倒是挺好,这样就不用管输入流了,因为 %s 是输入到回车结束的,也不会产生类似问题!
❸ c语言字符串可以输入,但是字符无法输入
#include"stdafx.h"
intmain()
{charstr[30];
charm;
inti,j=0;
printf("inputastring: ");
scanf("%s",str);
printf("inputachar: ");
//m=getchar();(这里出问题,换成scanf("%c",&m)也是一样问题,问题见下面图片)
fflush(stdin);
scanf("%c",&m);
for(i=0;str[i]!='