Используя scanf с NSStrings

Я хочу, чтобы пользователь ввел строку и затем присвоил вход NSString. Прямо сейчас мой код похож на это:

NSString *word; 

scanf("%s", &word);
11
задан Omar 10 July 2010 в 21:02
поделиться

2 ответа

scanf не работает ни с какими типами объектов. Если у вас есть строка на C и вы хотите создать из нее NSString, используйте -[NSString initWithBytes:length:encoding:].

7
ответ дан 3 December 2019 в 03:17
поделиться

Функция scanf читает в C строку (на самом деле массив char), вот так:

char word[40];

int nChars = scanf("%39s", word);   // read up to 39 chars (leave room for NUL)

Вы можете преобразовать массив char в NSString вот так:

NSString* word2 = [NSString stringWithBytes:word 
                                     length:nChars
                                   encoding:NSUTF8StringEncoding];

Однако scanf работает только с консольными программами (командной строкой). Если вы пытаетесь получить ввод на Mac или iOS-устройстве, то scanf - это не то, что вы хотите использовать для получения пользовательского ввода.

8
ответ дан 3 December 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: