C/Visual C - fscanf

 
Vista:

fscanf

Publicado por fran (2 intervenciones) el 23/04/2012 12:11:23
Buenas tardes,
tengo un archivo con la siguiente estructura:


alto:100
ancho:24
espesor:4

Bueno el caso, es que debo ir leyendo linea a linea, y quedarme con el valor numerico.
Para posteriormente guardarlo en una variable.

He estado viendo algo de fscanf, pero no termino de aclararme con el formato.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

fscanf

Publicado por David (3 intervenciones) el 05/06/2012 12:39:43
fscanf no es una buena idea cuando las secuencias de entrada son de longitud variable (como es el caso) te aconsejo usar fgets para guardar la linea, busques el separador : y convertir el valor a entero:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define FILE_LINE_SIZE 50
 
int main(void)
{
  FILE *f;
  int i, v[3] = {0};
  char s[FILE_LINE_SIZE], *a[] = {"alto", "ancho", "espesor"};
 
  f = fopen("data.txt", "r");
  if (f == NULL) {
    fprintf(stderr, "No se puede abrir el archivo en modo de lectura");
    exit(EXIT_FAILURE);
  }
  for (i = 0; i <= 2; i++) {
    fgets(s, FILE_LINE_SIZE, f);
    v[i] = atoi(strchr(s, ':') + 1);
  }
  fclose(f);
  for (i = 0; i <= 2; i++) {
    printf("%s:%d\n", a[i], v[i]);
  }
  return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar