2013-09-11 3 views
0

Как преобразовать строку числа (и я имею в виду строку не char, потому что функция atoi работает для char и не работает для строки для меня) целому числу. Я попытался это, но он не работает:Простой способ преобразования строки в int?

int main(){ 
int P,W; 
string ST1 , ST2; 
getline(cin,ST1,' '); 
getline(cin,ST2); 
P = std::atoi(ST1); 
W = std::atoi(ST1); 
return 0 ; 
} 

ответ

1

Вы можете вызвать любую функцию, принимая const char * с string использованием .c_str():

P = std::atoi(ST1.c_str()); 
+2

Да, но почему это делать, когда есть 'станд :: stoi'? – us2012

+1

@ us2012: Этот метод обычно полезен для вызова * любой * функции, которая принимает 'const char *', а не только для преобразования строк в integer. Кроме того, 'std :: stoi' - это только C++ 11 (и позже). –

+1

'atoi' ужасно. По крайней мере, используйте 'strtol' ... –

Смежные вопросы