PS:新手上路,第一次接触C语言遇到的问题,请多指教
这个问题呢,是寂寞在敲自己的第几个程序时遇到的呢,问题是在一个程序中同时使用两个scanf语句时,遇到只能输入第一个scanf语句所能够读取到的值,而第二个scanf语句则是被直接忽略了,进而出现执行结果的问题。
#include<stdio.h>
int main()
{
char tempType;
float temp,fahren,celsius;
printf("请输入一个温度:\n");
scanf("%f\n",&temp);
printf("请说出你输入的温度属于下列哪一种类型:\n");
printf("华氏温度:f 摄氏温度:c \n");
scanf("%c",&tempType);
if(tempType=='f')
{
celsius=(temp-32.0)*5.0/9.0;
printf("此华氏温度的摄氏温度为%6.2f\n",celsius);
}
else
{
fahren=temp*9.0/5.0+32.0;
printf("此摄氏温度的华氏温度为%6.2f\n",fahren);
}
return 0;
} 原始的代码编写出来后,会因为上一个scanf语句的输入的回车键而导致在进行下一个scanf语句读取的时候,直接读取上一个scanf的回车,从而不执行第二条scanf语句。
修正的方法为:
1.把第一个scanf 改成
scanf ("%f\n", &c1);
2.在第一个scanf 后添加下面的语句
fflush (stdin);
3. 在printf("华氏温度:f 摄氏温度:c \n");语句下面添加下面的语句
while (getchar () != '\n');4.这样也可以不过不知道原因,在%c前方加\n
scanf("/n%c",&tempType);
版权声明:本文为maoqiling原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。