Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode扫描字符数_Xcode - Fatal编程技术网

Xcode扫描字符数

Xcode扫描字符数,xcode,Xcode,我发现在Xcode命令行工具中,您可以使用scanf在代码中输入int。 当我尝试对NSString执行此操作时,它不起作用,我发现scanf返回一个整数,所以我的问题是,如何输入NSString并将其保存到变量中,如: int number; scanf("%i", &number); 编辑: 现在我找到了一个代码,但它只显示第一个字符: char naamchar[40]; int nChars = scanf("%39s", naamchar); NSString * naam

我发现在Xcode命令行工具中,您可以使用scanf在代码中输入int。 当我尝试对NSString执行此操作时,它不起作用,我发现scanf返回一个整数,所以我的问题是,如何输入NSString并将其保存到变量中,如:

int number;
scanf("%i", &number);
编辑: 现在我找到了一个代码,但它只显示第一个字符:

char naamchar[40];
int nChars = scanf("%39s", naamchar);
NSString * naam = [[NSString alloc] initWithBytes:naamchar 
                                           length:nChars 
                                         encoding:NSUTF8StringEncoding];
naam只有1个字符:(

编辑解决方案:

char naamchar[40];
scanf("%39s", naamchar);
NSString * naam = [NSString stringWithCString:naamchar encoding:NSUTF8StringEncoding];
...
man 3 scanf提到:

这些函数返回分配的输入项目数

nChars设置为返回匹配的项数,在本例中为1,而不是字符串中的字符数

尝试用strlen(naamchar)替换NCHAR,即


请确保检查nChars==0,这表示没有要扫描的输入。

的可能重复项是C函数。由于Objective-C是C的超集,它也在那里工作,但不适用于
NSObject
s(例如
NSString
),因为它们不是C固有的。您试图实现什么?
char naamchar[40];
int nChars = scanf("%39s", naamchar);
NSString * naam = [[NSString alloc] initWithBytes:naamchar 
                                       length:strlen(naamchar) 
                                     encoding:NSUTF8StringEncoding];