elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:53  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  [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 480 veces)
Hurubnar


Desconectado Desconectado

Mensajes: 300



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

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
#include <iostream>
#include <string>
 
using namespace std;
 
int main (void)
{
 string s;
 cin.getline((char*)s.c_str(), 256);
 cout << s.c_str();
 system("PAUSE");
 return 0;
}

Este es el segundo código, más sencillo y que cumple la misma función:
Código
#include <iostream>
#include <string>
 
using namespace std;
 
int main (void)
{
 char s[20];
 gets(s);
 
 cout << s;
 
 system("PAUSE");
 return 0;
}

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: 467



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

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
Moderador
***
Desconectado Desconectado

Mensajes: 4.392


Clarin miente, TN opera y los giles regurgitan.


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

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
#include <iostream>
#include <string>
using namespace std;
 
int main (void)
{
 string s;
 getline(cin, s);
 cout << s;
 return 0;
}

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: 300



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

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
duda con Console.Clear
.NET
jack06 2 1,228 Último mensaje 2 Noviembre 2009, 15:52
por jack06
[BASH]Simplemente guardar string en una variable
Scripting
illera88 11 2,506 Último mensaje 3 Enero 2011, 06:33
por Leo Gutiérrez.
Caracter Unicode en VB.Net Console Application
.NET
MicroHack 0 1,759 Último mensaje 1 Febrero 2011, 14:20
por MicroHack
[VBS] Duda con Excel.application (WXP=W7?)
Scripting
klaine 1 593 Último mensaje 8 Abril 2011, 02:41
por Novlucker
Visual Basic For Application. Objeto "Application.FileSearch" en Office 2007/10
Programación Visual Basic
Aberroncho 3 571 Último mensaje 26 Octubre 2011, 20:00
por Aberroncho
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines