// Estoy separando la variable (char) nombreEdad y funciona bien
// El resultado por pantalla es :
// Luis
// 20
// Me gustaría saber como podría poner el nombre Luis en una variable char diferente, y el numero 20 en una variable de tipo int, espero me entiendan y puedan ayudar gracias.
char nombreEdad[] = "Luis 20";
char* a;
a = strtok(nombre, " ");
while(a != NULL) {
cout << a << endl;
a = strtok(NULL, " ");
}
Si sabes que la cadena a separar siempre tiene el mismo formato puedes usar sscanf.
Cita de: MAFUS en 19 Marzo 2017, 00:23 AM
Si sabes que la cadena a separar siempre tiene el mismo formato puedes usar sscanf.
Citar
No entiendo lo que me quieres decir.
scanf ó cin son para pedir datos a los usuarios pero yo no necesito pedirselos ya que ya los tengo solo deseo separarlos y luego usarlos en variables diferentes.
Deberías conocer la biblioteca estándar. Así verías que muchas de las cosas ya están hechas.
sscanf: http://c.conclase.net/librerias/?ansifun=sscanf
Cita de: MAFUS en 19 Marzo 2017, 00:44 AM
Deberías conocer la biblioteca estándar. Así verías que muchas de las cosas ya están hechas.
sscanf: http://c.conclase.net/librerias/?ansifun=sscanf
Citar
Si puedes hacer un ejemplo con lo que yo publique te lo agradecería
Un ejemplo con tus datos:
#include <stdio.h>
int main() {
char nombreEdad[] = "Luis 20";
char nombre[20];
int edad;
sscanf(nombreEdad, "%s %i", nombre, &edad);
printf("Nombre: %s\n", nombre);
printf("Edad: %i\n", edad);
}
Cita de: MAFUS en 19 Marzo 2017, 02:12 AM
Un ejemplo con tus datos:
#include <stdio.h>
int main() {
char nombreEdad[] = "Luis 20";
char nombre[20];
int edad;
sscanf(nombreEdad, "%s %i", nombre, &edad);
printf("Nombre: %s\n", nombre);
printf("Edad: %i\n", edad);
}
Gracias por su ayuda me sirvió de mucho, pero se me presento otro problema no puedo leer numeros con 10 digitos, me lee perfecto hasta 9 numeros pero con 10 me sale un numero diferente al que leo, como podría solucionar esto ? gracias
char datos[] = "1 2304872458";
int code;
unsigned long code1;
sscanf(datos, "%i %i", &code, &code1);
printf("%i ",code);
printf("%i ",code1);
//Solución %u, Gracias por la ayuda.
cuando lees en el sscanf usas %i indicando que deseas leer un int... debes usar %li para leer un long int