Ввод в консоли

Рейтинг: 1Ответов: 2Опубликовано: 26.04.2011

Есть такой код:

char tmpBuff[255];
fgets(tmpBuff, 255, stdin);

NSString *tmpStr = [[NSString alloc] initWithBytes:tmpBuff length:255
    encoding:NSASCIIStringEncoding];

Но проблема в том, что в строку копируется так же и мусор. Я ввожу "Hello World!". Пробовал обрабатывать с помощью stringByTrimmingCharactersInSet но не помогло. Подскажите как правильно считать ввод из консоли в строку.

Ответы

▲ 2Принят
 char* ch = new char [255];
 gets(ch);
 l = strlen(ch);
▲ 2

Есть такой оператор как scanf():

char tmpBuff[255];  
// выражение в квадратных скобках указывает на то,   
// что нужно считывать всю строку с пробелами  
scanf("%[^\n]s",tmpBuff);

NSString *tmpStr = [[NSString alloc] initWithBytes: tmpBuff     
                                            length: sizeof(tmpBuff)   
                                          encoding: NSASCIIStringEncoding];  
NSLog(@"%@",tmpStr);

UPD.

int newLength = 0;
for (int i = 0; i < 256; i++) {
    if (tmpBuff[i] != ' ') { newLength++;}
   else  break;