Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Salida estándar en C++

Estas en el tema de Salida estándar en C++ en el foro de C/C++ en Foros del Web. Saludos... Me gustaria saber cuales los formatos de salida que utiliza el comando cout , me refiero a las cadenas de formato (con los float) ...
  #1 (permalink)  
Antiguo 10/03/2006, 09:45
Avatar de Anasiulim  
Fecha de Ingreso: febrero-2003
Ubicación: Caracas, Venezuela
Mensajes: 23
Antigüedad: 21 años, 2 meses
Puntos: 0
Pregunta Salida estándar en C++

Saludos...
Me gustaria saber cuales los formatos de salida que utiliza el comando cout , me refiero a las cadenas de formato (con los float) y las sentencias de escape (como los tabuladores).
Espero su pronta respuesta, nos vemos...
  #2 (permalink)  
Antiguo 10/03/2006, 16:41
 
Fecha de Ingreso: diciembre-2005
Ubicación: Ciudad de México
Mensajes: 45
Antigüedad: 18 años, 4 meses
Puntos: 1
Utiliza los mismos formatos de salida que el printf.
  #3 (permalink)  
Antiguo 10/03/2006, 18:03
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
exacto, la diferencia entre cout y el printf, es que en el cout, no es necesario declarar los tipos que debemos imprimir, por lo que se hace menos propenso a errores, pero en mi opinion le quita funcionalidad al printf
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #4 (permalink)  
Antiguo 10/03/2006, 18:47
 
Fecha de Ingreso: diciembre-2005
Ubicación: Ciudad de México
Mensajes: 45
Antigüedad: 18 años, 4 meses
Puntos: 1
bueno, solo falta mencionar que printf es una función muy segura en comparación con cout, es decir, es más vulnerable un programa que utiliza cout.
  #5 (permalink)  
Antiguo 11/03/2006, 00:01
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Cita:
Iniciado por vvblond
bueno, solo falta mencionar que printf es una función muy segura en comparación con cout, es decir, es más vulnerable un programa que utiliza cout.
mmmmm por que dices que es mas bulnerable un programa con cout?
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #6 (permalink)  
Antiguo 11/03/2006, 03:32
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por vvblond
Utiliza los mismos formatos de salida que el printf.
¿Qué "formatos"? std::cout no tiene nada que ver con printf.
  #7 (permalink)  
Antiguo 11/03/2006, 03:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por TolaWare
exacto, la diferencia entre cout y el printf, es que en el cout, no es necesario declarar los tipos que debemos imprimir, por lo que se hace menos propenso a errores, pero en mi opinion le quita funcionalidad al printf
std::cout es MUCHO mejor que printf(). Y claro, el printf no debería usarse en C++. Muchas cosas de la librería de C son inútiles pudiendo usar la de C++. Otra cosa es la eficiencia, que es más rápida la de C.

Pero en este caso (std::cout vs. printf()) me atrevería a decir que es más rápido el std::cout, porque printf() debe analizar toda una secuencia de caracteres y tiene mil y una normas para esa cadena. En cambio, std::cout usa operadores (<<), por los cuales el compilador otorga a cada parte (<< "hola" << 5 << 6.77) su correspondiente función. Y no hace falta analizarlo al ejecutar el programa.
  #8 (permalink)  
Antiguo 11/03/2006, 03:37
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por vvblond
bueno, solo falta mencionar que printf es una función muy segura en comparación con cout, es decir, es más vulnerable un programa que utiliza cout.
¿¿De dónde te has sacado eso??
  #9 (permalink)  
Antiguo 12/03/2006, 21:34
Avatar de Anasiulim  
Fecha de Ingreso: febrero-2003
Ubicación: Caracas, Venezuela
Mensajes: 23
Antigüedad: 21 años, 2 meses
Puntos: 0
Pregunta

Cita:
Iniciado por MaxExtreme
std::cout es MUCHO mejor que printf(). Y claro, el printf no debería usarse en C++. Muchas cosas de la librería de C son inútiles pudiendo usar la de C++.
Comparto la misma opinion de MaxExtreme, aunque tengo un detalle con el cout y las cadenas de caracteres. Al utilizarlo para almacenar una cadena este la trunca hasta donde ve un espacio en blanco (asi como hacia el printf), para evitar esto intente usar la funcion gets pero no su uso no eficiente (al colocar mas de una cadena da conflictos), asi que me gustaria saber cómo hacer que el cout pueda leer una cadena de caracteres completa incluyendo los espacios en blanco.

Agradezco su pronta respuesta... nos vemos
  #10 (permalink)  
Antiguo 12/03/2006, 22:13
Avatar de X.Cyclop
Usuario baneado!
 
Fecha de Ingreso: diciembre-2005
Ubicación: México, D.F.
Mensajes: 1.328
Antigüedad: 18 años, 4 meses
Puntos: 0
Cita:
Y claro, el printf no debería usarse en C++
De hecho yo ni la uso. Todo el tiempo cout <<.


Cita:
bueno, solo falta mencionar que printf es una función muy segura en comparación con cout, es decir, es más vulnerable un programa que utiliza cout.
  #11 (permalink)  
Antiguo 13/03/2006, 11:45
 
Fecha de Ingreso: diciembre-2005
Ubicación: Ciudad de México
Mensajes: 45
Antigüedad: 18 años, 4 meses
Puntos: 1
Pues bien debido a los múltiples comentarios al respecto de cout, aquí esta mi respuesta:

Aparecio esta función como parte de c++ pra facilitar la programación, si estoy totalmente de acuerdo. Pero con lo que no estoy de acuerdo es con que mando a la obsolescencia a funciones como printf, puts, etc. la función cout tiene menor tolerancia a fallos y muy lejos de esto tiene más puntos de fallo la función misma, esto debido a la forma en la que accede al archivo de salida estándar.
  #12 (permalink)  
Antiguo 26/04/2006, 08:13
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
la respuesta a la ultima pregunta es:

cin.getline(cadena, numerode caracteres);
o
cin.get(cadena);// esta es untanto menos segura.

pruebalas y ve cual cumple tus requerimientos.

en cuanto a la discucion, primero aclarar que couty cin, no son funciones, son objetos con operadores sobrecargados " << y >> ".

en cuestion de seguridad por supuesto que ninguna es mejor que la otra, la diferencia podria ser el tamaño de ejecutable que resulta el usar un metodo o el otro. pero al final de cuentas ambas usan las funciones de Win32. para escribir en la consola.
La ventanja que tienen usar el estilo C++ es la comodida y facilidad de uso.
es mejor usar << o >> para todo que acordarse del formato de salida o entrada, no niego en algunas ocaciones es mejor usar las funciones de C.
  #13 (permalink)  
Antiguo 26/04/2006, 13:23
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
A ver, printf() debe analizar en tiempo de ejecucion toda la cadena, y es lento.

En cambio, a std::cout se le aplican operadores que se analizan en tiempo de compilacion y se asocia a cada sobrecarga de la clase ostream, se optimiza, y todo lo que pueda ocurrir.

Por otra parte, es mas seguro en tipos, puesto que el compilador sabe que funciones estan definidas y cuales no.

Aparte, std::ostream es sobrecargable, para anydair mas objetos que puedas imprimir, en cambio printf() es una mera funcion.
  #14 (permalink)  
Antiguo 26/04/2006, 14:43
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
tampoco extremes todo, jeje lo digo por tu nick.

Si tienes razon en decir que printf recorre y analiza la cadena pero esto es una tarea nada complicada en comparacion de las diferentes llamadas a funciones que hace cout.
en cuestion de memoria cout consume mucho mas que usar printf por cuestiones de la poo.

al final de cuentas cada quien utilizara con la que mas le guste.
ademas creo que aun no se a contestado en su totalida la pregunta inicial,
ya se menciono que cout no usa indicadores de formato para los diferentes tipos de datos a imprimir pero si los usa para cosillas como signo, tipo de numeracion, ceros, ancho, etc, etc.
  #15 (permalink)  
Antiguo 27/04/2006, 09:42
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
xDDDD

No sé, si hay posibilidades de usar la librería de C++, lo que hago yo es usarla para la mayoría de las cosas, pero claro, si tengo que copiar mover setear ... una zona de memoria, pues hago un mem---() y no se muere nadie.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:42.