GNUstep: scanf не принимает символы

Я решил попробовать 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;
}

И вот что я получаю:

проблема с GNUstep

Пробовал unichar, тоже самое. Кто-нибудь знает что происходит?

Спасибо!


person Igor Tupitsyn    schedule 24.01.2014    source источник
comment
NSLog (@Name:% s, nameC);   -  person Igor Tupitsyn    schedule 26.01.2014


Ответы (1)


Вас может смутить тот факт, что nameC является массивом char, и поэтому вы используете %c в scanf и NSLog. Как прокомментировал Игорь Тупицын, вы должны использовать %s - но в обеих функциях.

Однако обратите внимание, что использование scanf в большинстве случаев является плохой идеей; лучше использовать fgets, а затем sscanf.

person echristopherson    schedule 27.01.2014