Problema conversion de tipos
Publicado por ruben (3 intervenciones) el 06/07/2009 15:20:26
hola amigos. estoy haciendo un programa en c++ que lee un archivo, hasta ahora tengo esto:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
struct Datos
{
int numero;
int peso;
int carga;
int codigo;
};
Datos pieza[100];
int main()
{
string lectura;
string leo;
int piezas[100];
ifstream archivo;
cout<<"Ingrese el nombre del archivo a leer: ";
cin>> lectura;
archivo.open(lectura.c_str());
if(archivo.fail())
{
cout<<"El archivo no se pudo leer";
return 0;
}
for(int i=0; i<100; i++)
{
getline(archivo,leo);
pieza[i]= atoi(leo);
}
}
los datos que están en el archivo que tendría que leer son:
111 3.45 528.5 234
221 5.56 345.6 345
332 7.73 454.1 234
454 8.56 422.3 345
223 2.96 343.2 345
215 2.52 312.4 234
278 2.25 345.7 345
222 1.52 325.4 142
211 3.25 315.7 142
pero me este error:
42 cannot convert `std::string' to `const char*' for argument `1' to `int atoi(const char*)'
la verdad que no se como pasar los valores leídos a enteros, si me podrían ayudar les agradecería.
saludos
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
struct Datos
{
int numero;
int peso;
int carga;
int codigo;
};
Datos pieza[100];
int main()
{
string lectura;
string leo;
int piezas[100];
ifstream archivo;
cout<<"Ingrese el nombre del archivo a leer: ";
cin>> lectura;
archivo.open(lectura.c_str());
if(archivo.fail())
{
cout<<"El archivo no se pudo leer";
return 0;
}
for(int i=0; i<100; i++)
{
getline(archivo,leo);
pieza[i]= atoi(leo);
}
}
los datos que están en el archivo que tendría que leer son:
111 3.45 528.5 234
221 5.56 345.6 345
332 7.73 454.1 234
454 8.56 422.3 345
223 2.96 343.2 345
215 2.52 312.4 234
278 2.25 345.7 345
222 1.52 325.4 142
211 3.25 315.7 142
pero me este error:
42 cannot convert `std::string' to `const char*' for argument `1' to `int atoi(const char*)'
la verdad que no se como pasar los valores leídos a enteros, si me podrían ayudar les agradecería.
saludos
Valora esta pregunta


0