Попытка решить проблему, требующую чтения ввода из стандартного ввода. Если между словами нет пробелов, я могу прочитать стандартный код, используя код:
Введите:
M
Blue
Balae
Код:
NSString *word;
char word_temp[50];
while ( scanf("%s",word_temp) >= 1){
word = [NSString stringWithFormat:@"%s", word_temp];
printf("%s \n",[word UTF8String]);
}
Выход (как и ожидалось):
M
Blue
Balae
Если входные слова имеют пробел, приведенный выше код будет печатать слово после пробела до следующей строки, потому что scanf будет считывать символы в буфер, пока не встретит пробел или символ новой строки. Чтобы решить эту проблему, я изменил спецификатор формата scanf так что он должен читать в буфер, пока не встретит символ новой строки.
Введите:
M
Blue Whale
Balae
Код:
NSString *word;
char word_temp[50];
while ( scanf("%[^\n]s]",word_temp) >= 1){
word = [NSString stringWithFormat:@"%s", word_temp];
printf("%s \n",[word UTF8String]);
}
Ожидаемый результат:
M
Blue Whale
Balae
Фактический объем производства:
// ~ no response on stdout ~
Как прочитать строку с несколькими словами и пробелами и преобразовать ее в NSString Object?