저는 Objective C를 가르치기 시작했습니다. 간단한 콘솔 기반 계산기로 속이고있었습니다. 시작하려면 사용자에게 어떤 작업을 수행 할 것인지 묻습니다. 두 개의 숫자로 해당 작업을 수행 한 다음 계산 된 결과를 인쇄합니다.ObjC : scanf가 do/while 루프를 생략했습니다.
그 부분은 모두 잘 작동하는 것처럼 보입니다. 구현하려고하는 다음 부분은 더 이상 필요하지 않다고 결정할 때까지 사용자가 계산을 계속할 수있게하는 것입니다. 이 문제에 접근하려는 나의 생각은 사용자가 scanf()를 통해 'y'또는 'no'를 통해 계속하기를 원하는지 확인하기 위해 검사가 끝날 때 do/while 루프 안에 계산기 실행을 넣은 다음에 확인하십시오. 사용자가 응답하도록 선택한 것을 확인하십시오. 첫 번째 단계가 끝나면 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;
}
미리 도움을 청하십시오. 충분한 정보를 제공하지 못하면 사과드립니다! 알려 주시면 기꺼이 더 제공 할 것입니다. 다시 한 번 고마워!
감사 빌 - 내 초기 가정이 잘못하고 실제로 흰색 간격 문제였다 - 귀하가 제공하는 링크가 저를 더 잘 이해할 수있었습니다. 내 기술이 향상됨에 따라 scanf를 피할 수 있기를 기대합니다. 다시 한 번 감사드립니다! – Kevin