使用Objective C从控制台输入字符串

时间:2014-03-13 03:32:13

标签: objective-c

我正在尝试使用Objective C从命令行输入一个字符串(或一些整数)。这些数字用空格分隔。

样本输入:1 2 3 4 5

我正在尝试代码

char input[100] = {0};
NSString *inputString;
scanf("%s", input);
inputString = [NSString stringWithCString:input encoding:NSUTF8StringEncoding];

inputString的结果值为1。

如何将整个值输入字符串?

2 个答案:

答案 0 :(得分:5)

NSLog(@"Enter the string : ");
NSFileHandle *input = [NSFileHandle fileHandleWithStandardInput];
NSData *inputData = [NSData dataWithData:[input availableData]];
NSString *inputString = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding];
inputString = [inputString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@", inputString);

在将目标C作为工作语言

时,请更准确地尝试这一点

答案 1 :(得分:2)

%s中使用scanf时,它会截断第一个空格处的输入。见here

  

任意数量的非空白字符,在第一个字符处停止   找到了空白字符。终止空字符是   在存储序列的末尾自动添加。

您可以根据this source

使用此功能
scanf("%[^\n]s", intpu);

您也可以使用gets()作为替代方案。