hola creo que no te da pq usas un string type, y la funcion atoi recibe como parametro un char, el parametro que le estas enviando type.c_str() no sirve porque la funcion c.str() devuelve un puntero de un array char y para poder usarlo deberias hacer
Código C++:
Ver originalchar * cstr;
string str ("Cadena de texto");
cstr = new char [str.size()+1];
no te compliques usa un char linea[100]; con eso leeras bien y podras usar bien el atoi