[C con Clase] lectura de caracteres y transformación a int.

Steven Davidson steven en conclase.net
Mar Feb 27 23:26:45 CET 2007


Hola Daniel,

El pasado 2007-02-27 11:13:16, dani escribió:

d> Hola a todos,
d> como siempre os agradezco a todos las ayudas de esta lista de correo.
d> Mirad lo que me ocurre es que he echo un programa que lee un archivo del tipo:
d> blablabla
d> int int int
d> int int int
d> int int int
d> blablabla
d> int int int
d> int int int
d> int int int
d> y lo que hace es almacenar los ints en una matriz. Esto lo hace pasando las líneas de números a ints con la función atoi y lee las líneas con getline.

Programante ya te ha respondido acerca del código. Sólo quería matizar que es mejor usar funciones ya hechas en lugar de crear tus propias implementaciones, al menos que tengas que hacer algo específico y diferente a ellas.

En tu caso, creo que es más sencillo usar 'fscanf()' o la clase 'stringstream'. Por ejemplo,

int n1, n2, n3;
char szLinea[1024]="";

cin.getline( szLinea, 1024 );

stringstream ssLinea( szLinea );
ssLinea >> n1 >> n2 >> n3;

O si lo prefieres,

fscanf( szLinea, "%d%d%d", &n1, &n2, &n3 );


Así no tienes que estar con quebraderos de cabeza.

Espero que esto te ayude.

Steven


Más información sobre la lista de distribución Cconclase