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)
| | |-+  duda2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda2  (Leído 2,530 veces)
difel

Desconectado Desconectado

Mensajes: 7


Ver Perfil
duda2
« en: 5 Mayo 2010, 20:46 pm »

printf es para lenguaje c cout en c++ pero hacen lo mismo?
sacnf es para c pero es lo misno que el cin de c++?


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: duda2
« Respuesta #1 en: 5 Mayo 2010, 21:05 pm »

grosso modo, si, son las "equivalencias". tienen diferente sintaxis pero el uso viene a ser el mismo.

printf --> cout
scanf --> cin

Que alguien que lo sepa a ciencia cierta me corrija si no es así, pero creo que cin es más "limpia" que scanf.


En línea

difel

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: duda2
« Respuesta #2 en: 5 Mayo 2010, 21:09 pm »

gracias amigo es que nosotrso solamente programamos en c++
En línea

^Winder^


Desconectado Desconectado

Mensajes: 2.776


El mundo no es tuyo, es de todos.


Ver Perfil
Re: duda2
« Respuesta #3 en: 5 Mayo 2010, 22:35 pm »

Sí, cin es mas limpia que scanf, porque este último no limpia el buffer.
En línea


Yo apoyo la esperanza de Caylees. Frenemos la Leucemia:
www.cayleeshope.com
Libertad conquistada.  (Justicia ;-))
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: duda2
« Respuesta #4 en: 5 Mayo 2010, 22:55 pm »

Sí, cin es mas limpia que scanf, porque este último no limpia el buffer.

cin no limpia el buffer tampoco. La diferencia es que si por ejemplo, lees un numero, si luego vuelves a leer otro numero se lee el salto de linea pero se descarta, pero si por ejemplo lees una cadena o un carácter sucede lo mismo que con scanf. Es decir, el salto de linea permanece en buffer en ambos casos.

Igualmente no se pueden comparar, son dos lenguajes distintos, uno es un objeto y el otro es una función. No son comparables salvo a grandes rasgos por lo que no tiene caso ahondar en las diferencias.

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
^Winder^


Desconectado Desconectado

Mensajes: 2.776


El mundo no es tuyo, es de todos.


Ver Perfil
Re: duda2
« Respuesta #5 en: 5 Mayo 2010, 22:57 pm »

¿Enserio?  :o pensaba que cin sí lo hacía...  :-[ entonces, ¿en C++ también es mejor usar fgets en vez de cin?
En línea


Yo apoyo la esperanza de Caylees. Frenemos la Leucemia:
www.cayleeshope.com
Libertad conquistada.  (Justicia ;-))
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: duda2
« Respuesta #6 en: 5 Mayo 2010, 23:12 pm »

fgets se utiliza en C por la posibilidad de pasar la cantidad a leer como argumento. fgets deja el salto de linea en la cadena porque lo considera un carácter valido, pero si el contenido alcanza el final de la cadena el salto de linea también queda en buffer.

Hay otras variantes en C++, por ejemplo, cin.getline, que descarta el salto de linea (también tienes getline para strings)

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
^Winder^


Desconectado Desconectado

Mensajes: 2.776


El mundo no es tuyo, es de todos.


Ver Perfil
Re: duda2
« Respuesta #7 en: 5 Mayo 2010, 23:14 pm »

Gracias por la aclaración :) sí, conocía cin.getline y getline, lo que no sabía era que cin no limpiaba el buffer... enfin, siempre se aprende algo nuevo.

 :D
En línea


Yo apoyo la esperanza de Caylees. Frenemos la Leucemia:
www.cayleeshope.com
Libertad conquistada.  (Justicia ;-))
Páginas: [1] Ir Arriba Respuesta Imprimir 

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