elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Ayuda C]Consejos para TP Final
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda C]Consejos para TP Final  (Leído 2,762 veces)
n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
[Ayuda C]Consejos para TP Final
« en: 27 Septiembre 2016, 03:40 am »

[PRIMERA DUDA RESUELTA POR MAFUS]
Buenas, estoy ya preparando mi TP final para aprobar la asignatura, vengo en busca de unos consejos y sacarme varias dudas. El TP es con manejo de archivos y estructura, nada complicado.
Lo que pasa que quiero hacerlo lo mas optimo posible y por eso acudo a ustedes.

Mi primera duda es que en el programa tengo que leer bocha de datos ingresados por teclado, y siempre en todos mis programas tengo problemas, al combinar gets y scanf, con el buffer. Que funciones me recomiendan usar para lecturas de datos?

Recuerden que tengo windows y no se si es conveniente poner un fflush(stdin) cada dos lineas.

Tengo que leer cadenas y numericos, no mas.

(Ire cambiando el post y editandolo entre tilde y cruz cada vez que tengo una pregunta, para evitar doble, triple, cuadruple post) Gracias a los interesados!

Ademas les pido a los que tengan, algun paper con apuntes de C especificamente de archivos, ya que los que tengo dejan algo que desear.



[SEGUNDA DUDA]

Modifico este post para no plaguear el sub-foro.
Ahora tengo una duda con el archivo, al grabarlo lo grabo con extension .txt, y graba todo perfectamente, y si lo leo desde el IDE lo imprime perfectamente. El problema esta cuando yo voy directamente al txt creado y lo abrio, se ven todos simbolos ilegibles, como si fuera basura, y me han dicho que no tiene porque ser asi.

Mi duda es como hacer para que se no se grabe "basura" en el txt, y tambien pueda modificarlo desde alli.

Gracias.


« Última modificación: 28 Septiembre 2016, 01:50 am por n-utz » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #1 en: 27 Septiembre 2016, 10:41 am »

No uses fflush ( stdin ). Esta función sólo está pensada para flujos de salida. Usada en flujos de entrada su comportamiento no está definido, puede pasar cualquier cosa.

No uses gets, es una función obsoleta por su inseguridad y está marcada a desaparecer.


En línea

n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #2 en: 27 Septiembre 2016, 20:38 pm »

No uses fflush ( stdin ). Esta función sólo está pensada para flujos de salida. Usada en flujos de entrada su comportamiento no está definido, puede pasar cualquier cosa.

No uses gets, es una función obsoleta por su inseguridad y está marcada a desaparecer.

Perfecto, y entonces? Me manejo con scanf nada mas? Como controlo el buffer? Combino getchar y scanf?
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #3 en: 27 Septiembre 2016, 20:55 pm »

Scanf tiene muchas opciones, incluso puede dimensionar el buffer por ti con el especificador m.
Pásate por aquí y verás todo lo que puede hacer: https://linux.die.net/man/3/scanf

Y printf también tiene más opciones de las que te habrán contado. Dale un repaso también a su página de manual.
En línea

n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #4 en: 27 Septiembre 2016, 21:03 pm »

Scanf tiene muchas opciones, incluso puede dimensionar el buffer por ti con el especificador m.
Pásate por aquí y verás todo lo que puede hacer: https://linux.die.net/man/3/scanf

Y printf también tiene más opciones de las que te habrán contado. Dale un repaso también a su página de manual.

Gracias genio! Estas funciones son compatibles con windows no?
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #5 en: 27 Septiembre 2016, 21:34 pm »

És la librería estándar de C. Sirve para cualquier compilador que siga el estándar.
En línea

n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #6 en: 27 Septiembre 2016, 22:25 pm »

Lo que pasa que no logro encontrar una funcion de scanf que me lea los espacios.
Cual deberia utilizar  o de que forma?
fscanf(stdin...) no me funciona tampoco.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #7 en: 27 Septiembre 2016, 22:44 pm »

scanf tiene una especie de expresión regular: si sustituyes %s por %[] scanf aceptará solamente los caracteres que haya entre corchetes, pero si el primer caracter que hay entre los corchetes es el acento circunflejo ^ scanf leerá todos los caracteres hasta encontrar los de la lista.
Así %[^\n] leerá toda la cadena hasta encontrar el caracter de nueva línea.
En línea

n-utz

Desconectado Desconectado

Mensajes: 165

Babylon es el vampiro!


Ver Perfil
Re: [Ayuda C]Consejos para TP Final
« Respuesta #8 en: 27 Septiembre 2016, 23:24 pm »

scanf tiene una especie de expresión regular: si sustituyes %s por %[] scanf aceptará solamente los caracteres que haya entre corchetes, pero si el primer caracter que hay entre los corchetes es el acento circunflejo ^ scanf leerá todos los caracteres hasta encontrar los de la lista.
Así %[^\n] leerá toda la cadena hasta encontrar el caracter de nueva línea.

perfecto, disculpa, se que esa teoria esta en la pagina que me pasaste pero no me manejo muy bien con el lexico del rubro en ingles.

Gracias una vez mas.

Plantee una nueva duda aqui mismo, editando el post principal para evitar el doble post.

Gracias a los interesados!

MOD: No hacer doble post.
« Última modificación: 28 Septiembre 2016, 05:36 am por MCKSys Argentina » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines