Ayuda con programa implementado en c++ para leer números desde un archivo con un formato

Como puedo leer desde un archivo que tenga la foema siguiente:
Hola
Numeros 1-2 3-10
Solamente los números 1,2,3,10, probé, si alguien tiene puede ayudarme, con ese módulo, se lo agradecería mucho
(El archivo es de texto)

1 Respuesta

Respuesta
1
Puede ser de la siguiente manera:
FILE *f;
char s[256];
char palabra[20];
int n1, n2, n3, n10;
f = fopen("archivo.txt", "rt");
fgets(s, 256, f);
fgets(s, 256, f);
sscanf(s, "%s %d-%d %d-%d", palabra, &n1, &n2, &n3, &n10);
1. Declaras las variables.
2. Abres el archivo.txt en modo lectura en texto.
3. El primer fgets() lee la primera línea (pero como no nos interesa que es lo que tiene, la ignoramos)
4. El segundo gets() obtiene la segunda línea.
5. El sscanf() hace lo mismo que el scanf(), solo que en lugar de obtener la entrada del teclado, la obtiene de una cadena, y como la segunda línea del archivo está almacenada en la variable "s", los valores que almacenara en las variables destino, los obtendrá de esta; el primer %s es para la palabra Números, y va a almacenarse en el arreglo palabra, esto tiene que ir, ya que tiene que saltarse esta palabra para llegar a los números. El siguiente %d toma el 1 y lo almacena en la variable n1, el "-" es para que busque un "-" y lo ignore, luego está el siguiente %d, que toma el 2 y lo almacena en n2; y así también para el 3 y el 10.
La línea del sscanf pudo ser también:
sscanf(s, "Numeros %d-%d %d-%d", &n1, &n2, &n3, &n10);
El sscanf busca la palabra Números y la ignora de la cadena y continua con los números.
Espero no te queden dudas al respecto y resuelvas tu problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas