[问题] Xcode跑课程的范例一直Build Failed

楼主: v303ofsky (阿速)   2014-05-29 00:39:04
开发平台(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):
作者: putumaxally (putumaxally)   2014-05-29 00:49:00
把#include <conio.h> 删掉?getch() 改成 getchar() 看看
作者: brilliantye (不来&石见)   2014-05-29 09:28:00
mac 用bash去编译看看
作者: uranusjr (←這人是超級笨蛋)   2014-05-29 10:01:00
Linker 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教学…
作者: putumaxally (putumaxally)   2014-05-29 18:18:00
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,好烦阿...
作者: putumaxally (putumaxally)   2014-05-30 02:43:00
scanf("%lf %lf %c",&a,&b,&key); 不行吗
作者: Killercat (杀人猫™)   2014-05-30 11:03:00
用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)?

Links booklink

Contact Us: admin [ a t ] ucptt.com