开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Xcode Version 4.5
问题(Question):
上礼拜周末去上台大资工开的C/C++基础课程,上课是用VB教学,
课堂上的一个范例,回家用Xcode一直跑不出来?上课的时候老
师有提到conio.h如果到Mac的环境要改成curses.h,是改了以后
还是失败,是哪里有问题呢?
范例:输入两个数字, 再输入+,-,*,/任一键, 根据输入的
键内容显示两数计算结果
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
#include <curses.h>
int main()
{
double a,b,ans;
char key;
printf("input two number:");
scanf("%lf %lf",&a,&b);
printf("press +,-,*,/:");
key=getch();
switch(key)
{
case '+':
ans=a+b;
break;
case '-':
ans=a-b;
break;
case '*':
ans=a*b;
break;
case '/':
ans=a/b;
break;
default:
printf("Undefined key\n");
return 0;
}
printf("%lf%c%lf=%lf\n",a,key,b,ans);
return 0;
}
补充说明(Supplement):
把#include <conio.h> 删掉?getch() 改成 getchar() 看看
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-05-29 10:01:00Linker error, 要加 -lncurses (curses 的 lib file)
楼主: v303ofsky (阿速) 2014-05-29 13:55:00
谢谢各位前辈的回答,我改成getchar后是编译成功了,但是输入完两个数字后,不等我输入+-*/他就直接跑去执行default最后给我show出Undefined key了耶...不好意思,u大,您的解释我看不懂耶?
作者:
EdisonX (卡卡兽)
2014-05-29 16:32:00是我看错吗…上课用vb教学…
scanf("%lf %lf %c",&a,&b,&key); // 我不知道为什么getchar() 会不能用...
楼主: v303ofsky (阿速) 2014-05-29 20:09:00
不好意思,我记得是visual basic 201X,还是我记错?p大,我也不知道为什么耶...
作者:
CaptainH (Cannon)
2014-05-29 20:12:00应该是因为 getchar() 吃到空格了
楼主: v303ofsky (阿速) 2014-05-30 00:29:00
问过授课老师以后问题解决了,只不过蛮麻烦的...但是用getchar又会直接跳default,好烦阿...
scanf("%lf %lf %c",&a,&b,&key); 不行吗
用vc教学很正常阿 有免钱的express版 不过我也不喜欢
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-05-30 11:05:00↑原 po 写的是 VB XD
楼主: v303ofsky (阿速) 2014-05-31 21:25:00
我写错了,是VC才对scanf,getch,getchar会去抓输入数字时的"enter",所以需要在scanf,getch,getchar之前加上一行"fflush(stdin);"强制清除键盘输入残留的按键,就不会直接跳去default了谢谢各位参与讨论的前辈们!
作者:
LPH66 (-6.2598534e+18f)
2014-06-01 00:51:00......请别用 fflush(stdin)要清 enter 请 getchar() 到 '\n' 为止
楼主: v303ofsky (阿速) 2014-06-01 23:07:00
咦?可以再解释的清楚些吗?为何不能用fflush(stdin)?