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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: duda c++
« Respuesta #10 en: 1 Julio 2011, 21:54 pm »

error no me da... lo que pasa es que se me cierra sin que me de el resultado cuando esta ejecutado el programa


« Última modificación: 1 Julio 2011, 21:55 pm por peterfly » En línea

Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: duda c++
« Respuesta #11 en: 2 Julio 2011, 04:27 am »

Delante de cada scanf y de cada getchar() pon lo siguiente.
while (getchar()!='\n');
esto limpiará el buffer de entrada, y ya no tendrás problemas de que se cierre justo después de darte el resultado.

Código
  1. int main (){
  2.    int a,b,c,i;
  3.    char cadena1[40]="milmasmil";
  4.    char cadena2[50];
  5.    char cadena3[40];
  6.    printf("escriba la operacion:  ");
  7.    fgets(cadena1,40,stdin);
  8.    if (cadena1[strlen(cadena1)-1] == '\n')
  9.    cadena1[strlen(cadena1)-1] = '\0';
  10.    i= strcmp(cadena1,"milmasmil");
  11.    if (i==0){
  12.                                    printf("el resultado es 2000");
  13.                                    }
  14.    while (getchar()!='\n');
  15.    getchar();
  16.    return 0;
  17.    }
  18.  

Por cierto, también cambié el gets por fgets, que es más segura.


« Última modificación: 2 Julio 2011, 04:34 am por Acermax » En línea

peterfly

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: duda c++
« Respuesta #12 en: 2 Julio 2011, 12:06 pm »

algo falla... por que e puesto lo sigiente i sigue pasando lo mismo de antes... cuando le pongo la operacion se me cierra... pero no me da error solo cuando pongo "milmasmil" i luego enter se me cierra el programa sin que pueda ver el resultado de dicha operacion...

Código:
#include <stdio.h>
#include <string.h>
#include <stdio.h>
int main()
{
int a,b,c;
char palabra [40];
 
printf("                         calculo \n");
printf("                      __________________ \n");
 

scanf(" %d",&a);

scanf(" %d",&b);

printf("0+0 \n");
printf("0+1 \n");
printf("0+2 \n");
{
scanf(" %d",&c);


gets(palabra);
 

scanf("%d",&c);
switch(c){
case 1:
     {
   int a,b,c,i;
    char cadena1[40]="milmasmil";
    char cadena2[50];
    char cadena3[40];
    printf("escriba la operacion:  ");
    fgets(cadena1,40,stdin);
    if (cadena1[strlen(cadena1)-1] == '\n')
    cadena1[strlen(cadena1)-1] = '\0';
    a= strcmp(cadena1,"milmasmil");
    if (i==0){
                                    printf("el resultado es 2000");
                                    }
    while (getchar()!='\n');
                                   
    getchar();
    return 0;
                                    }
     //haz esta operacion.
     break;
     case 2:
         
          //haz esto;
          break;
          case 3:
               //haz lo otro;
               break;
               default:
                       printf("esa opcion no es valida");
                       break;
                       }
                       getchar();
                       return 0;
}
}
En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: duda c++
« Respuesta #13 en: 2 Julio 2011, 14:56 pm »

Yo creo que deberías leerte un buen manual de C++ antes de ponerte a escribir código como un loco.

Código
  1. printf("0+2 \n");
  2. {
  3. scanf(" %d",&c);

Ese { no se que pinta hay.

Código
  1. a= strcmp(cadena1,"milmasmil");
  2.    if (i==0)

¿No sería if(a==0)?

Código
  1. getchar();
  2.    return 0;
  3.                                    }
  4.     //haz esta operacion.
  5.     break;

¿No te da error?
En línea

Saberuneko


Desconectado Desconectado

Mensajes: 2.182



Ver Perfil WWW
Re: duda c++
« Respuesta #14 en: 3 Julio 2011, 15:21 pm »

Delante de cada scanf y de cada getchar() pon lo siguiente.
while (getchar()!='\n');
esto limpiará el buffer de entrada, y ya no tendrás problemas de que se cierre justo después de darte el resultado.

También se puede, simplemente ejecutar el .exe desde una consola abierta previamente, esto hará que al finalizar la ejecución del programa, no se cierre la misma.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,775 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines