2009-12-30 4 views
3

저는 "objective C 2.0에서 프로그래밍"이라는 책을 작업 중이며 왜이 프로그램이 작동하지 않는지 이해하지 못합니다. 기본적으로 화씨 값을 섭씨 1로 변환하는 프로그램을 작성해야합니다.슈퍼 간단한 프로그램이 작동하지 않습니다

나는 객체를 사용하지 않고 매우 간단하게 해결할 수있는 방법을 찾았고 곧바로 절차 적 방법론을 사용했다. 문제는 내가 화씨 또는 celcius 값을 나타 내기 위해 정의한 변수 값이 종류에 따라 달라진다는 것이다. 무작위.

#import <Foundation/Foundation.h> 

int main (int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    float fahrenheit; 
    float celciusConverted; 
    fahrenheit = 27.0; 
    celciusConverted = (fahrenheit - 32)/1.8 ; 
    NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius") , fahrenheit, celciusConverted; 
    [pool drain]; 
    return 0; 
} 
+0

"무작위 종류"란 무엇을 의미합니까? 매번 동일한 결과를 얻지 못합니까? 인쇄 할 몇 줄의 예제 로그를 게시 할 수 있습니까? –

답변

5

당신의 NSLog 문 닫는 괄호가 잘못입니다 :

여기 내 코드입니다. 그것은 당신이 무엇을 가지고 ;

이 컴파일러는 %f의 어느 것도 해당 인수, NSLog() 같은 가변 기능을 가진 공통의 함정이 없습니다 볼만큼 똑똑하지 않는 것

NSLog(@"... %f %f ..."), arg1, arg2; 

직전해야한다. 닫는 괄호 뒤에 쉼표 연산자가 시작되고 표현식 arg1과 arg2는 아무 것도하지 않습니다.

+1

쉼표 연산자는 다음 버전의 C에서 중단되어야합니다. 유일한 목적은 이처럼 명확한 실수를 구문 적으로 여전히 유효하게 만드는 것입니다. – Chuck

+0

대단히 고맙습니다. 이곳의 바위는 분명히 객관적인 C로 코딩을 시작했기 때문에이 사이트를 많이 사용하게 될 것입니다. 프로그래밍에 대한 지식은 매우 제한되어 있지만, iphone 앱을 만드는 데 마음을 쏟을 수는 있습니다. 숫자를 오른쪽으로 가져 가라.) 어쨌든 도움을 주셔서 감사합니다. 닉 – nickthedude

3

함수에 대한 인수는 괄호 안에 있습니다.

NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius", fahrenheit, celciusConverted); 
+0

감사합니다! 도움을 주신 분께 감사드립니다. 여기서 시작하십시오. – nickthedude

관련 문제