请帮助我,我坚持这一点......
我只知道PHP和C的基本思想。
我创建了一个调用函数并给出结果的代码....
在下面我有主要功能,调用添加metod和从其他功能读取输入.......
问题我们如何通过args? 为什么不给o / p? 当我直接将值赋予ip1和ip2时给出结果? 那么我们如何使用命令行读取输入....
#import<Foundation/Foundation.h>
int add(int input1,int input2)
{
int result = input1 + input2;
return result;
}
char* GetString(char* a)
{
int i = 0;
while(a[i] != '\0')
{
if(a[i] == '_')
a[i] = ' ';
else if(a[i] == '{')
a[i] = ' ';
else if(a[i] == '}')
a[i] = ' ';
i++;
}
return a;
}
int GetInt(char *input)
{
int num = [input intValue];
return num;
}
int main(int argc, char *a[0])
{
int output = 0;
int ip1;
int ip2;
NSLog(@"value of c : %d \n", a[0]);
ip1 = GetInt(a[1]); // 4
ip2 = GetInt(a[2]); // 5
output = add(ip1,ip2);
NSLog(@"output %d", output);
}
答案 0 :(得分:1)
试试这个:
int GetInt(char *input)
{
NSString *string = [NSString stringWithUTF8String:input];
int num = [string intValue];
return num;
}
答案 1 :(得分:0)
好intValue
是NSString
类上的一个方法,您传递的是C char
数组。因此,将GetInt()
函数更改为以下内容(无论如何,只要intValue
方法立即可用,无意义函数):
int GetInt(NSString *input)
{
int num = [input intValue];
return num;
}
并使用NSString
将命令行参数转换为@(string)
个实例:
if (argc >= 3) {
ip1 = GetInt(@(a[1])); // 4
ip2 = GetInt(@(a[2])); // 5
}
(除非a[1]
,否则您不应取消引用a[2]
或argc >= 3
,因为程序会崩溃。
答案 2 :(得分:0)
我认为您需要研究Objective-c
的语法创建
以下是一些可能对您有帮助的链接:
http://www.tutorialspoint.com/objective_c/objective_c_basic_syntax.htm
http://en.wikibooks.org/wiki/Objective-C_Programming/syntax
https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html