使用目标C读取函数中的输入类型

时间:2014-09-12 09:26:44

标签: objective-c

请帮助我,我坚持这一点......

我只知道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);

}

3 个答案:

答案 0 :(得分:1)

试试这个:

int GetInt(char *input)
{
    NSString *string = [NSString stringWithUTF8String:input];
    int num = [string intValue];
    return num;
}

答案 1 :(得分:0)

intValueNSString类上的一个方法,您传递的是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)