GNUstep:scanf不接受char

时间:2014-01-24 11:45:07

标签: char scanf gnustep

我决定尝试使用Objective C.因为我没有Mac笔记本电脑,所以我在计算机上安装了GNUStep。从一开始,我就有以下问题。

代码:

// First program

#import <Foundation/Foundation.h>

int main (int argc, const char* argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
char nameC[50];
NSLog(@"ENter your name: ");
scanf("%c", &nameC);
NSLog(@"Name is: %c", nameC);
[pool drain];
return 0;
}

这就是我得到的:

problem with GNUstep

试过unichar,同样的事情。有谁知道发生了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可能会对nameCchar数组这一事实感到困惑,因此您在%cscanf中使用NSLog。正如Igor Tupitsyn评论的那样,你应该使用%s - 但是在两个函数中都可以使用。

但请注意using scanf is in most cases a bad idea;最好使用fgets后跟sscanf