C/Visual C - programa en c

 
Vista:

programa en c

Publicado por alex28 (4 intervenciones) el 13/03/2007 00:46:22
Hola soy principiante en esto de la programacion y necesito leer un archivo .txt a traves de un codigo en c que tenga el siguiente formato:

nombre apellido numero nombre
MD: 1 2 3 4 5 - 1 2 3 4 5
MD: 1 2 3 4 5 - 1 2 3 4 5
nombre apellido numero nombre
MD: 1 2 3 4 5 - 1 2 3 4 5
MD: 1 2 3 4 5 - 1 2 3 4 5

y asi sucesivamente...

me gustaria saber si alguien me podria dar el codigo que tengo que utilizar para leerlo completo y que todos esos datos me aparezcan en pantalla y otro codigo para leer la linea que yo quiera de ese 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

RE:programa en c

Publicado por nacho (12 intervenciones) el 13/03/2007 11:29:35
Si no tiene espacios en nombre y apellidos, puedes usar "fscanf" para leer líneas de ese formato:

fscanf(fichero, "%s %s %d %s", &nombre1, &apellido, &num, &nombre2);
...

y luego lo escribirías de forma muy parecida:

printf("%s %s %d %s", nombre1, apellido, num, nombre2);
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

RE:programa en c

Publicado por alex28 (4 intervenciones) el 13/03/2007 23:34:44
Gracias pero si tienes espacios en blanco entre cada nombre..y lo intente leer de esa forma pero no me lee los apellidos solo el nombre, el numero, y el otro caracter.Ademas quiero leer determinadas lineas del archivo para utilizar en otras funciones y no se como hacerlo si me pudieran ayudar en eso tambien se los agradeceria.
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

RE:programa en c

Publicado por nacho (12 intervenciones) el 15/03/2007 08:22:38
Sí, la familia "scanf" tiene esa limitacion: los %s acaban en el primer espacio.

Pero es que entonces la especificación que te dan está incompleta: o el nombre o el apellido no deberían contener espacios, y en caso de que todo pueda contener espacios, deberían estar separados por un símbolo distinto (típicamente entre comillas y separados por coma o punto y coma -es el formato CSV-, o bien separados por alguno menos habitual como la barra vertical | ).

Si no te dan ese detalle, ¿Jose Juan Fernández es nombre Jose Juan y apellido Fernandes o nombre Jose y apellido Juan Fernández?

En cualquier caso, entonces posiblemente tendrías que leer toda la línea con fgets y partirla "a mano" con tus propias funciones o con la ayuda de "strtok".

Por cierto, no entiendo a que te refieres con:
MD: 1 2 3 4 5 - 1 2 3 4 5
¿Siempre esa misma línea?
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