Pliskin Posted December 4, 2010 Report Share Posted December 4, 2010 Dada una linea de un archivo, como se ve a continuación <char>,<#int>,<#hint>,<int>,<#int> ¿Como logro guardar toda esa información(solo el char y los int), ocupando scanf y omitiendo el resto? Gracias de antemano! Link to comment Share on other sites More sharing options...
Curso_C Posted December 4, 2010 Report Share Posted December 4, 2010 si necesitas recuperar datos de un archivo, es imposible hacer eso utilizando scanf que es una funcion que se queda esperando que le ingresen datos desde el teclado, yo creo que la funcion que debes utilizar es fscanf( http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/ ) , ahora nose si tengo problemas de comprension o que pero no entiendo tu tarea, dice que tiene que recuperar los char y los int , ¿ y donde los guardo ?¿ en el archivo ?, ¿ debo borrar los otros datos y dejar solamente los char e int ? , no entiendo su tarea compadre, si necesitas ayuda, te tienes que dar el tiempo de explicar la tarea bien, no creo que te ayuden viendo que llegas y copias la tarea y aparte no llevas nada avanzado. suerte ! Link to comment Share on other sites More sharing options...
Pliskin Posted December 4, 2010 Author Report Share Posted December 4, 2010 Mis disculpas si la explique mal. Mira, lo que pasa es quede un archivo ya leí una linea (y la guarde en un char ) , esa linea lo que tiene son datos con este formato que puse arriba. Ahora, quiero usar sscanf para poder tomar solamente el char y los int, y guardarlos en variables separadas, el resto (<>,) simplemente ignorarlos. El archivo no se modifica, solo tengo que leer. Creo que ahí si Link to comment Share on other sites More sharing options...
Curso_C Posted December 4, 2010 Report Share Posted December 4, 2010 (edited) recorre el array con un for , y si encuentras una i comparala con int y si encuentras una c comparala con char, para eso utiliza la api StrCmpN(http://msdn.microsoft.com/en-us/library/bb759949%28VS.85%29.aspx ) que te permite comparar sierto numero de caracteres, en el caso del int serian 3 y el char serian 4, suerte y cualquier duda, ya sabes ;) PD: tambien podria ser la funcion strncmp de la libreria string , http://docs.mis-algoritmos.com/c.funcion.strncmp.html. Edited December 4, 2010 by Curso_C Link to comment Share on other sites More sharing options...
Pliskin Posted December 4, 2010 Author Report Share Posted December 4, 2010 O sea perfecto, pero yo tengo entendido que hay una función que hace algo asi como char linea[]; sscanf(linea, "%s %i %i" , char1,&int1,&int2); tonces por ahi va mi duda Link to comment Share on other sites More sharing options...
cañangasñangas Posted December 4, 2010 Report Share Posted December 4, 2010 yo creo que con typeof, lo logras Link to comment Share on other sites More sharing options...
Pliskin Posted December 4, 2010 Author Report Share Posted December 4, 2010 Y como seria eso? Link to comment Share on other sites More sharing options...
Curso_C Posted December 4, 2010 Report Share Posted December 4, 2010 typedef ? para que ? . y lo de la funcion sscanf, no tengo idea pero lo que aria yo seria meter el archivo en memoria y trabajarlo desde ahi, es mucho mas facil para mi por lo menos, tendrias que sacar el tamaño del archivo luego crear un buffer del tamaño del archivo( malloc , memset ) , luego leer el archivo y meter en el buffer , despues ya tendrias un puntero con la direccion del archivo en memoria, ahora solo basta recorrer el archivo e ir comparando con la funcion que te puse arriba, eso seria todo. lo que tu quieres es sacar directamente los datos del archivo, tambien podrias hacerlo con fgetc , para ir recorriendo el arhivo desde el mismo archivo, pero ahi ve tu que es lo que mas te acomoda. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now