我正在尝试使用Objective C从命令行输入一个字符串(或一些整数)。这些数字用空格分隔。
样本输入:1 2 3 4 5
我正在尝试代码
char input[100] = {0};
NSString *inputString;
scanf("%s", input);
inputString = [NSString stringWithCString:input encoding:NSUTF8StringEncoding];
inputString
的结果值为1。
如何将整个值输入字符串?
答案 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()
作为替代方案。