我刚开始自学Objective C,并且一直在玩一个简单的基于控制台的计算器。首先,我询问用户他们想要执行哪个操作,对哪两个数字执行该操作,然后在计算完答案后打印答案。
这部分似乎一切正常——我试图实现的下一个部分是允许用户继续进行计算,直到他们决定不再想要。我的想法是在检查结束时将计算器的运行放在 do/while 循环中,以查看用户是否希望通过 scanf(); 继续通过“y”或“no”,然后检查查看用户选择响应的内容。我遇到的是在第一遍结束时,通过 scanf() 请求输入;只是被忽略,程序终止。
我希望能得到一些帮助:) 我已经尽我所能通过故障排除、在线研究(在 scanf() 的空白问题上找到了一些东西;但这没有帮助)和一些猜测但是到目前为止,我一直没有成功。以下是我的代码的主要部分:
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
float answer;
char op,repeat;
NSLog(@"Welcome to my sexy calculater, (_(_)!!"); //don't mind me being weird
Calculater *deskCalc;
deskCalc=[[Calculater alloc] init];
do
{
[deskCalc clear];//clear calc
op =[deskCalc getOperator]; //get +,-,*,or/
[deskCalc getNumbers]; //get two numbers
[deskCalc calculate: op];
answer=[deskCalc accumulater];
NSLog(@"Your answer is %f!", answer);
NSLog(@"Would you like to calculate something again(y/n)?");
scanf("%c",&repeat);
//NSLog(@"You typed: %c", repeat);
} while (repeat=='y');
[deskCalc release];
[pool drain];
return 0;
}
提前感谢您的帮助。如果我没有提供足够的信息,我很抱歉!请让我知道,我会非常愿意提供更多。再次感谢大家!