我在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];
...
答案 0 :(得分:0)
man 3 scanf提到:
这些函数返回分配的输入项目数。
设置nChars,返回匹配的项目数,在本例中为1,而不是字符串中的字符数。
尝试用strlen(naamchar)代替nChars,即
char naamchar[40];
int nChars = scanf("%39s", naamchar);
NSString * naam = [[NSString alloc] initWithBytes:naamchar
length:strlen(naamchar)
encoding:NSUTF8StringEncoding];
请务必检查nChars == 0,这表示没有要扫描的输入。