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++?
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.
gracias amigo es que nosotrso solamente programamos en c++
Sí, cin es mas limpia que scanf, porque este último no limpia el buffer.
Cita de: ^Winder^ en 5 Mayo 2010, 22:35 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
¿Enserio? :o pensaba que cin sí lo hacía... :-[ entonces, ¿en C++ también es mejor usar fgets en vez de cin?
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 (http://www.cplusplus.com/reference/iostream/istream/getline/), que descarta el salto de linea (también tienes getline (http://www.cplusplus.com/reference/string/getline/) para strings)
Saludos
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