Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Anastacio en 1 Febrero 2012, 16:56 pm



Título: Problema con un Do While simple.
Publicado por: Anastacio en 1 Febrero 2012, 16:56 pm
Código:
# include <stdio.h>
# include <conio.h>

int main ()
{
    int suma;
    int n;
    n = 0;
    suma = 0;
   
    do{
         n = n + 1;
         suma = suma + n;
         printf("Resultados:%d\n\n",suma);
         }while(n < 100000);
getch();
return 0;
}

Cuando ejecuto este programa, solo me muestra las ultimas respuestas, y las otras desaparecen, aparece esto en la consola:



Resultados:690293582

Resultados:690393435

Resultados:690493289

Resultados:690593144

Resultados:690693000

Resultados:690792857

Resultados:690892715

Resultados:690992574

Resultados:691092434

Resultados:691192295

Resultados:691292157

Resultados:691392020

Resultados:691491884

Resultados:691591749

Resultados:691691615

Resultados:691791482

Resultados:691891350

Resultados:691991219

Resultados:692091089

Resultados:692190960

Resultados:692290832

Resultados:692390705

Resultados:692490579

Resultados:692590454

Resultados:692690330

Resultados:692790207

Resultados:692890085

Resultados:692989964

Resultados:693089844

Resultados:693189725

Resultados:693289607

Resultados:693389490

Resultados:693489374

Resultados:693589259

Resultados:693689145

Resultados:693789032

Resultados:693888920

Resultados:693988809

Resultados:694088699

Resultados:694188590

Resultados:694288482

Resultados:694388375

Resultados:694488269

Resultados:694588164

Resultados:694688060

Resultados:694787957

Resultados:694887855

Resultados:694987754

Resultados:695087654

Resultados:695187555

Resultados:695287457

Resultados:695387360

Resultados:695487264

Resultados:695587169

Resultados:695687075

Resultados:695786982

Resultados:695886890

Resultados:695986799

Resultados:696086709

Resultados:696186620

Resultados:696286532

Resultados:696386445

Resultados:696486359

Resultados:696586274

Resultados:696686190

Resultados:696786107

Resultados:696886025

Resultados:696985944

Resultados:697085864

Resultados:697185785

Resultados:697285707

Resultados:697385630

Resultados:697485554

Resultados:697585479

Resultados:697685405

Resultados:697785332

Resultados:697885260

Resultados:697985189

Resultados:698085119

Resultados:698185050

Resultados:698284982

Resultados:698384915

Resultados:698484849

Resultados:698584784

Resultados:698684720

Resultados:698784657

Resultados:698884595

Resultados:698984534

Resultados:699084474

Resultados:699184415

Resultados:699284357

Resultados:699384300

Resultados:699484244

Resultados:699584189

Resultados:699684135

Resultados:699784082

Resultados:699884030

Resultados:699983979

Resultados:700083929

Resultados:700183880

Resultados:700283832

Resultados:700383785

Resultados:700483739

Resultados:700583694

Resultados:700683650

Resultados:700783607

Resultados:700883565

Resultados:700983524

Resultados:701083484

Resultados:701183445

Resultados:701283407

Resultados:701383370

Resultados:701483334

Resultados:701583299

Resultados:701683265

Resultados:701783232

Resultados:701883200

Resultados:701983169

Resultados:702083139

Resultados:702183110

Resultados:702283082

Resultados:702383055

Resultados:702483029

Resultados:702583004

Resultados:702682980

Resultados:702782957

Resultados:702882935

Resultados:702982914

Resultados:703082894

Resultados:703182875

Resultados:703282857

Resultados:703382840

Resultados:703482824

Resultados:703582809

Resultados:703682795

Resultados:703782782

Resultados:703882770

Resultados:703982759

Resultados:704082749

Resultados:704182740

Resultados:704282732

Resultados:704382725

Resultados:704482719

Resultados:704582714

Resultados:704682710

Resultados:704782707

Resultados:704882705

Resultados:704982704

Resultados:705082704

Porque???


Título: Re: Problema con un Do While simple.
Publicado por: rir3760 en 1 Febrero 2012, 17:08 pm
Si apenas empiezas tu aprendizaje en el lenguaje C evita el uso de conio de Borland, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).

Lo que indicas es normal, la consola tiene un buffer finito y solo puede almacenar (y presentar) un numero determinado de lineas.

Un saludo


Título: Re: Problema con un Do While simple.
Publicado por: Anastacio en 1 Febrero 2012, 19:40 pm
Yo no uso borland, uso Dev C++.

Oh, en serio, no sabia, gracias por la ayuda!!!


Título: Re: Problema con un Do While simple.
Publicado por: Xandrete en 1 Febrero 2012, 20:49 pm
Yo no uso borland, uso Dev C++.

Oh, en serio, no sabia, gracias por la ayuda!!!

Ya, no usas Borland, pero conio.h pertenece a Borland. En Dev-Cpp lo han incluido de regalo.

Si guardas la salida en un fichero (redireccionándola, por ejemplo), podrás verla completa.

Saludos


Título: Re: Problema con un Do While simple.
Publicado por: Anastacio en 1 Febrero 2012, 22:40 pm
Y entonces como paro un programa, getch() es una funcion genial, te permite incluso elegir las letras, segundos, etc.

Los Wait no son exactamente apropiados para esto.

Que me recomiendas usar?


Título: Re: Problema con un Do While simple.
Publicado por: Akai en 1 Febrero 2012, 22:43 pm
getch()

Su prima estándar  getchar (http://cplusplus.com/reference/clibrary/cstdio/getchar/), por ejemplo?


Título: Re: Problema con un Do While simple.
Publicado por: Anastacio en 1 Febrero 2012, 22:48 pm
Pero el Getchar no sirve acaso para devolver un caracter????


Título: Re: Problema con un Do While simple.
Publicado por: rir3760 en 2 Febrero 2012, 00:22 am
Tanto getchar (estándar) como getch (extensión) retornan un carácter. Tu la estas utilizando para generar una pausa que, siendo estrictos, no es parte del programa (es mas bien una deficiencia del IDE que utilizas).

Un saludo


Título: Re: Problema con un Do While simple.
Publicado por: Xandrete en 2 Febrero 2012, 10:28 am
Y si guardas la salida en un fichero, no te hace falta ninguna pausa en el programa.

Saludos


Título: Re: Problema con un Do While simple.
Publicado por: Anastacio en 15 Febrero 2012, 22:00 pm
Y como se guarda la salida en un fichero?


Título: Re: Problema con un Do While simple.
Publicado por: rir3760 en 16 Febrero 2012, 01:32 am
Pensandolo un poco eso ya sale del tema C/C++ para entrar en "Uso del interprete de comandos", una pagina en ingles donde se describen es Using command redirection operators (http://technet.microsoft.com/en-us/library/bb490982.aspx).

Esa misma documentación en español se puede consultar localmente, basta con:

1) Menú "Inicio", "Ayuda y soporte técnico".
2) En el cuadro "Buscar" se introduce "Interprete de comandos".

Un saludo


Título: Re: Problema con un Do While simple.
Publicado por: TheMaker en 16 Febrero 2012, 05:05 am
Tienes dos formas de redirigir la salida de un programa:

1) Usando las herramientas de redirección del sistema operativo:
Ejecutas el programa desde la linea de comando y redireccionas la salida, en windows seria
inicio , en el buscador pones CMD , le das a cmd.exe , te vas hasta el dir donde este el .exe , tuPrograma.exe > prueba.txt
Lo cual haría que toda la salida standar(todos los printf) en vez de escribirse por consola lo hiciese en el fichero prueba.txt

2) Usando las herramientas del propio lenguaje. Abres un archivo con fopen() y escribes en el con la funcion write(), aquí tienes un ejemplo de entrada/salida en c++
http://www.cplusplus.com/reference/iostream/ostream/write/