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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Duda] Guardar un string y mostrarlo en Console Application
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Guardar un string y mostrarlo en Console Application  (Leído 3,283 veces)
Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
[Duda] Guardar un string y mostrarlo en Console Application
« en: 3 Diciembre 2011, 21:06 pm »

Buenas:
Tengo los siguientes dos códigos para guardar una frase con espacios y mostrarlo seguidamente en un proyecto en modo consola.

Este primer código es del 2005 (fuente):
Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main (void)
  7. {
  8.  string s;
  9.  cin.getline((char*)s.c_str(), 256);
  10.  cout << s.c_str();
  11.  system("PAUSE");
  12.  return 0;
  13. }

Este es el segundo código, más sencillo y que cumple la misma función:
Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main (void)
  7. {
  8.  char s[20];
  9.  gets(s);
  10.  
  11.  cout << s;
  12.  
  13.  system("PAUSE");
  14.  return 0;
  15. }

El segundo código lo entiende, pues es muy simple, pero ¿alguien me podría explicar el primero? Sé que es más complicado porque es viejo (año 2005) pero aun así me gustaría saber el porqué de ese 256 etcétera.

Un saludo,
atte. Herio


En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: [Duda] Guardar un string y mostrarlo en Console Application
« Respuesta #1 en: 3 Diciembre 2011, 21:17 pm »

Lo que hace el primer código es que obtiene del flujo de entrada una linea y almacena máximo 256 caracteres en la cadena que le pasaste como primer parámetro. Aquí tienes un link con mas información:

http://www.cplusplus.com/reference/iostream/istream/getline/


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Duda] Guardar un string y mostrarlo en Console Application
« Respuesta #2 en: 3 Diciembre 2011, 21:27 pm »

http://www.cplusplus.com/reference/iostream/istream/getline/

El 256 se supone que es el tamaño maximo de caracteres a escribir en la cadena.

Igual olvidate de ese codigo, seguramente lo hice bajo  VC++ 6.0:

Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main (void)
  6. {
  7.  string s;
  8.  getline(cin, s);
  9.  cout << s;
  10.  return 0;
  11. }

El segundo codigo tambien es inseguro, gets no recibe el tamaño de la cadena asi que es muy facil producir un buffer overflow ...
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Hurubnar

Desconectado Desconectado

Mensajes: 299



Ver Perfil WWW
Re: [Duda] Guardar un string y mostrarlo en Console Application
« Respuesta #3 en: 3 Diciembre 2011, 22:31 pm »

Bien, muchas gracias a los dos por las prontas respuestas ;)

Un saludo,
atte. Herio
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Caracter Unicode en VB.Net Console Application
.NET (C#, VB.NET, ASP)
MicroHack 0 3,760 Último mensaje 1 Febrero 2011, 14:20 pm
por MicroHack
IpToKml (Console Application Source) « 1 2 »
.NET (C#, VB.NET, ASP)
Novlucker 10 8,446 Último mensaje 31 Octubre 2012, 13:18 pm
por Novlucker
Ingresar un numero y mostrarlo en string
Java
itzg3 1 1,379 Último mensaje 28 Abril 2015, 23:47 pm
por engel lex
guardar un numero y mostrarlo de nuevo programa calculadora
.NET (C#, VB.NET, ASP)
creiko 1 3,291 Último mensaje 25 Agosto 2016, 18:49 pm
por Eleкtro
MOVIDO: guardar un numero y mostrarlo de nuevo programa calculadora
Programación Visual Basic
Eleкtro 0 2,535 Último mensaje 25 Agosto 2016, 18:14 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines