Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - leogtz

#1591
Puede devolver un string:

Código (cpp) [Seleccionar]
#include <iostream>
std::string algo(void)
{
    return "bye";
}
int main(void)
{
    std::cout << algo() << std::endl;
    return 0;
}
#1592
Cita de: STANHMAL en  7 Julio 2010, 19:39 PM
2 cosas

la primera:

Cita de: .:BlackCoder:. en  7 Julio 2010, 19:28 PM

else if (x>3 || x<1)
printf("Error, opción no definida.\n");
else printf ("Saliendo\n\n");


que no le hace falta: {} ?


else if (x>3 || x<1) {
printf("Error, opción no definida.\n");
                            }
else {
                                    printf ("Saliendo\n\n");
                            }


la segunda:

Cita de: .:BlackCoder:. en  7 Julio 2010, 19:28 PM
PD: No le hice la tarea el de el ya servia  :xD

No es tarea  :rolleyes:

Cuando es una única línea puedes omitir las llaves {}
#1593
Scripting / Re: Una mano con bash
7 Julio 2010, 20:10 PM
Código (bash) [Seleccionar]
#!/usr/bin/bash
normal=(1 2 3 4 5 6 7 8 9)
echo "Normal : ${normal[@]}"
invertido=($(echo "${normal[@]}" | awk '{for (i = NF; i>=1; i--) printf $i " "} END{print ""}'))
echo "Invertido : ${invertido[@]}"


leo@lein:~/Escritorio$ bash shit.sh
Normal : 1 2 3 4 5 6 7 8 9
Invertido : 9 8 7 6 5 4 3 2 1
leo@lein:~/Escritorio$


Código (bash) [Seleccionar]
#!/usr/bin/bash
normal=(1 2 3 4 5 6 7 8 9)
invertido=($(echo "${normal[@]}" | tac -s ' '))
echo -e "Invertido : ${invertido[@]}";
#1594
No, el disco en uso no se puede formatear, otros discos sí.
#1595
Scripting / Re: Voy bien?? ayuda.. [batch]
7 Julio 2010, 19:22 PM
Borrando drivers de la carpeta de \windows\system32\drivers, eso afecta demasiado, igual borrando algunas .dll
#1596
Usa getchar(), pero asegurate de limpiar el buffer de entrada.

Algo así:

...
código...
...
    while(getchar() != '\n');
    getchar();
    return 0;
}


No es la mejor manera de limpiar el buffer, pero sirve en estos ejercicios sencillos.
#1597
Cita de: STANHMAL en  7 Julio 2010, 15:32 PM

Cita de: Leo Gutiérrez. en  7 Julio 2010, 07:00 AM
Y no hace falta que uses exit(0), con el return 0 bastaba.

te refieres a reemplazar el exit por el return?
porque si es así, lo probé y no sirvió.


Debería de servir, mira:

leo@lein:~/Escritorio/c_proyect$ cat code.c | indent
/************************************
* Solución al Teorema de Pitágoras *
************************************
*       Creado por STANHMAL        *
************************************/

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

enum stan
{ continua };

int
main ()
{
  int x;
  double c, c2, C, C2, h, h2;
  enum stan hmal;

  printf ("\n **************************************\n");
  printf (" *  Solución al Teorema de Pitágoras  *\n");
  printf (" **************************************\n\n");
  hmal = continua;
  while (hmal == continua)
    {
      printf ("\n1. Para hallar un cateto.\n");
      printf ("2. Para hallar la hipotenusa.\n3. Para salir.\n");
      printf ("Opción escogida: ");
      scanf ("%d", &x);

      if (x == 1)
        {
          printf ("Introduzca el valor de un cateto: ");
          scanf ("%lf", &c);
          printf ("Introduzca el valor de la hipotenusa: ");
          scanf ("%lf", &h);
          c2 = c * c;
  h2 = h * h;
  C = sqrt (h2 - c2);
  printf ("El cateto tiene un valor de: %f\n", C);
  printf ("\nDesea continuar o salir.\n1. continuar 2. salir ");
  scanf ("%d", &x);
  if (x == 1)
    {
      hmal = continua;
    }
  else if (x == 2)
    {
      exit (0);
    }
}
      else if (x == 2)
{
  printf ("Introduzca el valor del cateto opuesto: ");
  scanf ("%lf", &c);
  printf ("Introduzca el valor del cateto adyacente: ");
  scanf ("%lf", &C);
  c2 = c * c;
  C2 = C * C;
  h = sqrt (C2 + c2);
  printf ("El valor de la hipotenusa es: %f\n", h);
  printf ("\nDesea continuar o salir.\n1. continuar 2. salir ");
  scanf ("%d", &x);
  if (x == 1)
    {
      hmal = continua;
    }
  else if (x == 2)
    {
      exit (0);
    }
}
      else if (x == 3)
{
  return 0;
}
      else
{
  printf ("Error, opción no definida.\n");
}
    }
  return 0;
}
leo@lein:~/Escritorio/c_proyect$


Compilar, ejecutar y checar el estado de error:
leo@lein:~/Escritorio/c_proyect$ gcc code.c -o code -lm
leo@lein:~/Escritorio/c_proyect$
leo@lein:~/Escritorio/c_proyect$ ./code ; echo -e "Error : $?"

**************************************
*  Solución al Teorema de Pitágoras  *
**************************************


1. Para hallar un cateto.
2. Para hallar la hipotenusa.
3. Para salir.
Opción escogida: 3
Error : 0
leo@lein:~/Escritorio/c_proyect$

El return hace su trabajo.
#1598
Cita de: do-while en  7 Julio 2010, 08:15 AM
Leo, el bufer de entrada es stdin. El de salida es stdout.

fflush solo se puede utilizar con bufers de salida, para obligar a que se vacien, por ejemplo cuando hay un bufer asociado a un fichero de salida, y se quiere escribir la informacion del bufer en el fichero antes de que este completo...

fflush(stdin), funciona solo bajo windows. Al aplicar fflush a cualquier flujo que no sea de salida, el comportamiento queda indefinido.

Revisa este post de Littlehorse.

¡Saludos!
Cita de: Leo Gutiérrez. en  7 Julio 2010, 07:00 AM
Tal vez debieras limpiar el buffer de entrada.
Usar fflush(stdout).
Y no hace falta que uses exit(0), con el return 0 bastaba.

Lo de "Usar fflush(stdout)" no tiene nada que ver con la primera línea, es por eso que está en una segunda línea. Yo sé que el buffer de entrada es stdin y sé también que fflush() con un buffer de entrada da como resultado un comporamiento indefinido en algunos compiladores.

La segunda recomendación no tiene nada que ver con la primera.
#1599
Cita de: Ari-Slash en  7 Julio 2010, 07:47 AM
el buffer de entrada es fflush(stdin) xD

Sin comentarios.  :-\
#1600
Yo cobro unos 30 dolares.