我正在编写“在Objective c 2.0中编程”一书,我不明白为什么这个程序不起作用。基本上我需要建立一个程序来将华氏温度值转换为细胞值。
我想只是简单地解决它没有对象而只是使用一个直接的程序方法,无论如何我遇到的问题是我定义的变量值代表华氏度或者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语句中的右括号是错误的。它应该在;
你拥有的是
NSLog(@"... %f %f ..."), arg1, arg2;
编译器似乎不够聪明,看不到%f
都没有相应的参数,这是NSLog()
等可变函数的常见缺陷。在右括号之后,逗号运算符启动,表达式arg1和arg2什么都不做。
答案 1 :(得分:3)
函数的参数放在括号内。
NSLog(@"%f degrees fahrenheit is equal to %f degrees celcius", fahrenheit, celciusConverted);