Un par de conceptos que tengo que mejorar.

Iniciado por snake_linux, 24 Agosto 2015, 18:12 PM

0 Miembros y 1 Visitante están viendo este tema.

snake_linux

Hola a tod@s, hago este post por no hacer dos y no ser tan pesado, el caso es que ya sé más o menos lo básico del maravilloso lenguaje C, pero los punteros aún no los manejo del todo bien y me gustaría que me recomendarais una buena lectura (en español) que expliquen bien los punteros, no solo lo básico si no también algo un poco más avanzado, pero empezando desde el principio.

Una segunda duda que tengo es que en un programilla que he hecho hace poco, scanf me deja \n en el buffer, y al volver a leerlo con fgetc (el stdin me refiero) pues fallaba por que leia ese caracter de más, lo solucioné usando fgets y eliminando el ultimo caracter del string con strlen (para eliminar de lo que había leido el \n).

¿ Qué opinan entonces sobre scanf()? ¿ Es aconsejable ? ¿ Es una mala práctica ? ¿ Es mejor usar fgets ? o si no es así ¿ cuando usar uno u otro ?.

Gracias de antemano.

Saludos.

FKT

Personalmente prefiero el
scanf();
y siempre lo uso asi que ya te imaginaras que pienso de el.
"scanf()" te deja introducir "\n" para que cuando insertes los caracteres o numeros haga un salgo de línea.

Pero "fgets()" tiene más opciones.
Solo hay 10 tipos de personas, las que saben binario y las que no.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

snake_linux

Cita de: engel lex en 24 Agosto 2015, 20:59 PM
dejo esto aquí

http://www.makigas.es/articulos/c-cpp/por-que-no-deberias-usar-scanf/

Gracias por el enlace, me ha servido de mucha ayuda, tanto para saber los inconvenientes de scanf como para ver como funciona internamente.

Saludos.