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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [src]Hello world
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [src]Hello world  (Leído 4,185 veces)
0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
[src]Hello world
« en: 23 Diciembre 2012, 23:04 pm »

Hola bueno como ya dije en otro post, estoy empezando a programar en C por lo tanto decidi hacer uno de esos programas "Hello world" pero de una forma un tanto diferente..


Aqui el codigo:
Código:
#include <stdio.h>

int main()
{
  char hello[5];
  char world[6];
 
  printf("Como se dice \"hola\" en ingles?.\n");
  scanf("%s",hello);
  printf("Como se dice \"mundo\" en ingles?.\n");
  scanf("%s",world);
  printf("En ingles \"Hola mundo\" se dice %s %s!!.",&hello,&world);
}

Denme su opinion, ahora quiero codear otro, de forma diferente....

saludos


En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [src]Hello world
« Respuesta #1 en: 24 Diciembre 2012, 00:23 am »

Jeje bien, pero no vale la pena que hagas otro distinto, son cosas basicas, ya lo entiendes asi que hace otra cosa, crea una calculadora que sume, reste, multiplique y divida, con un lindo menu.

Mirate esto antes que todo:

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Luego si haces la calculadora la pones aca preguntando tus dudas o para saber si quedo todo bien :P Saludos!


En línea

0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: [src]Hello world
« Respuesta #2 en: 24 Diciembre 2012, 01:30 am »

gracias por tomarte tiempo para ver el code  :P....quiero hacer otro codigo pero es para "afilar mis garras"

por cierto gracias por el link




saludos
« Última modificación: 24 Diciembre 2012, 01:32 am por n3t_3rr0r » En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: [src]Hello world
« Respuesta #3 en: 24 Diciembre 2012, 01:51 am »

Hola! cuando compilaste el codigo debio haberte tirado un warning(sino lo hizo cambia de compilador). EL problema esta en hacer &hello y &world, esos "&" estan demas(mas adelante vas a entender que significaria)


Saludos

PD: para el otro post tenes la funcion atol
En línea

Ahorrate una pregunta, lee el man
0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: [src]Hello world
« Respuesta #4 en: 24 Diciembre 2012, 20:03 pm »

no, no tuve ningun tipo de problema compilando este programa, se muy bien de lo que estas hablando, pero funciona tambien si le pones el "&" a la variable dentro de scanf..










saludos
En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: [src]Hello world
« Respuesta #5 en: 24 Diciembre 2012, 23:28 pm »

Cuando declaras el arreglo hello te olvidaste de dejar un espacio para el caracter nulo (\0). En este caso funciona lo de &hello y &world solo porque son arreglos.
En línea

0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: [src]Hello world
« Respuesta #6 en: 25 Diciembre 2012, 09:55 am »



Cuando declaras el arreglo hello te olvidaste de dejar un espacio para el caracter nulo (\0). En este caso funciona lo de &hello y &world solo porque son arreglos.

a que te refieres con dejar un espacio para caracter nulo? a mi pobre entender este codigo debe funcionar bien con o sin "&"...explicate mas claramente.



saludos
En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [src]Hello world
« Respuesta #7 en: 25 Diciembre 2012, 17:45 pm »

* Al utilizar el operador "dirección de" (el '&') con un array el puntero resultante es (en tu caso) de tipo "char (*)[N]" mientras que scanf espera un puntero de tipo "char *". Tal vez funcione pero el tipo no es el esperado por la función.

* En C una cadena es una secuencia de caracteres seguida del carácter '\0', este no es parte de la cadena, la delimita. Por ello si quieres almacenar las cadenas "Hello" y "World" necesitas dos arrays con una capacidad de seis caracteres (en tu ejemplo el primer array solo puede almacenar cinco).

* Utilizas scanf con el especificador "%s", ello es igual de malo que utilizar gets ya que la función lee y almacena todos los caracteres que pueda. En su lugar debes utilizar "%Ns" donde N es el numero de caracteres (menos uno) que se puede almacenar en el array. El "menos uno" es para reservar espacio para el delimitador, el '\0'.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: [src]Hello world
« Respuesta #8 en: 2 Enero 2013, 15:35 pm »

bien, gracias por corregir mi codigo...y tomarse el tiempo para leerlo acuerdense que soy novato xD


Citar
* Utilizas scanf con el especificador "%s", ello es igual de malo que utilizar gets ya que la función lee y almacena todos los caracteres que pueda. En su lugar debes utilizar "%Ns" donde N es el numero de caracteres (menos uno) que se puede almacenar en el array. El "menos uno" es para reservar espacio para el delimitador, el '\0'.


no soy experto en el asunto ni nada de eso pero a mi entender no veo que mi codigo tenga un array segun he visto en otros codigos un array(si no mal recuerdo) es una sentencia del tipo:

[codigo]
var nombrequequierodarleamivariable[] = {valor valor valor valor};
[/quote]

no estoy seguro, pero corrigeme si me equivoco....

saludos
En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [src]Hello world
« Respuesta #9 en: 2 Enero 2013, 16:56 pm »


no soy experto en el asunto ni nada de eso pero a mi entender no veo que mi codigo tenga un array segun he visto en otros codigos un array(si no mal recuerdo) es una sentencia del tipo:

Código
  1. var nombrequequierodarleamivariable[] <==esto es un array¡¡¡ y esto otro su valor==>= {valor valor valor valor};
  2. Por lo tanto:
  3. char hello[5],world [6] son arrays ¡ ¡ ¡
  4.  

no estoy seguro, pero corrigeme si me equivoco....
Sí hombre, cuando hello y world tomen el valor de hola y mundo serán:
Código
  1. hello[5]={'h','o','l','a','\0'}
  2. world [6]={'m','u','n','d','o','\0'}[
Y por cierto, los tamaños están bien declarados, aunque sospecho que por chiripa. ;-) ;-)

Saluditos!. ...........  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
« Última modificación: 2 Enero 2013, 17:00 pm por leosansan » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Digimon world 2 psx
Juegos y Consolas
TheChivo 0 1,602 Último mensaje 5 Agosto 2004, 12:31 pm
por TheChivo
World Of Warcraft
Juegos y Consolas
brazilian 0 1,466 Último mensaje 12 Mayo 2006, 03:34 am
por brazilian
World of Goo
Juegos y Consolas
© Shadoweps ツ 2 1,934 Último mensaje 15 Febrero 2009, 20:41 pm
por © Shadoweps ツ
The best pc in the world?
Hardware
noker613 5 3,809 Último mensaje 19 Enero 2012, 23:34 pm
por kmorfo
Divertimento: Hello world!
Programación C/C++
MAFUS 0 1,171 Último mensaje 27 Agosto 2019, 19:04 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines