Co do konwersji, to tego typu pytań była masa na tym Forum.
A co do kodu, to konwersja typu char (string to tablica charów) na int nie zamienia np. "1" w stringu na "1" w intcie, tylko przypisuje intowi wartość bajtu, który odpowiada znakowi "1" w tablicy ASCII. Jeśli chcesz przekonwertować te typy co do wartości liczby, a nie jej kodu, to użyj sposobu, który polecił kolega, lub (jeśli masz nowy kompilator) metody std::stoi.