Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Duda En C

Iniciado por misscelan, 28 de Diciembre de 2005, 12:17:27 PM

« anterior - próximo »

misscelan

 Si por ejemplo tuviese en un archivo: Pedro 4 5
Podría leer el archivo y meterlo en variales con algo parecido a esto fscanf(farch, "%s %d %d", a, &b, &c);

Pero si eso en vez de un archivo lo tuviese en un vector. Existe alguna manera de sacarlo de ahí con una función o me la tengo que crear yo.

Muchísimas gracias.

Un saludo.

Y feliz navidad para los ateos.

zupervaca

 En el fscanf puedes poner cosas así: fscanf(farch, "vector(%s,%d,%d);", a, &b, &c); No se si te refieres a esto exactamente.

Pogacha

 Yo creo, que lo que en realidad necesitas para leer datos desde un archivo de texto es hacerte un parser generico, te tomará un par de dias pero te servira para toda la vida  :P
Busca informacion de como hacer un parser o donde conseguir uno hecho ...
Saludos.

Ruben

 Hi,
no se si es esto lo que quieres, pero ahi va de todas formas:

#include <string.h>
char *strtok( char *str1, const char *str2 );


strtok te devuelve el puntero al siguiente "token" de la cadena str1, donde str2 contiene el separador de los "tokens" de str1. Cuando ya no encuentra mas tokens devuelve NULL. Asi que la primera llamada a strtok deberia ser con la cadena a ser "separada" en str1 y el delimitador en str2. El resto de llamadas hasta que te devuelva NULL deberia ser con str1 a NULL y str2 con el delimitador.


#include <stdio.h>
#include <string.h>

int main(){

char cadena[] = "Ejemplo@tipico@Hola@mundo";
char delimitador[] = "@";
char* cadenaResultado = strtok( cadena, delimitador);

while( cadenaResultado != NULL ) {
   printf( "El resultado es: %s\n", cadenaResultado );
   cadenaResultado = strtok( NULL, delimitador );

}

return 0;

}


La salida seria:
El resultado es: Ejemplo
El resultado es: tipico
El resultado es: Hola
El resultado es: mundo

Espero que te haya servido,
Un saludo,
-Rubén-


misscelan

 Muchas gracias por las respuestas.

Voy con ello.

Un saludo.

Editado: Acabo de ver en una página la función sscanf con lo que podría sacarla del vector directamente sin complicarme la vida. El caso es que alguna vez la he usado. Demasidos lenguajes con demasiadas funciones con demasida limitación cerebral...es lo que tiene.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.