PDA

Visualizza la versione completa : [C] Attesa prima di chiudere la finestra del programma


2black2blue
09-12-2005, 14:00
Ciao a tutti :ciauz: sono nuovo di questo forum e colgo subito l'occasione per chiedervi un aiuto. Sto preparando l'esame di Programmazione per la facoltà di Ingegneria, con il linguaggio C. Il programma che uso x esercitarmi è Dev C++. Quando compilo e mando in esecuzione un qualunque programma la finestra di esecuzione si vede solo per le prime istruzioni, ad esempio l'inserimento da tastiera di dati di input, per poi tornare sistematicamente alla finestra dell'editor, senza darmi il tempo di vedere il risultato del programma.

Esiste un istruzione da inserire nel programma (e se si, dove) che mi mantenga aperta la finestra di execute e poi mi faccia tornare all'editor premendo Invio o un qulunque tasto?

Ad esempio nel Pascal si usa "uses crt" o qlcs di simile...

Spero che qualcuno mi aiuti altrimenti non saprò mai se i programmi che faccio sono giusti! :bhò: :ciauz:

zero85
09-12-2005, 14:02
puoi o usare
system("pause");

oppure include conio.h e usi la funzione getch() che aspetta la pressione di un tasto

2black2blue
09-12-2005, 14:09
Originariamente inviato da zero85
puoi o usare
system("pause");

oppure include conio.h e usi la funzione getch() che aspetta la pressione di un tasto

tali due istruzioni dove vanno inserite? la seconda ovviamente alla fine del programma, prima della parentesi graffa che chiude il main...

mentre system ("pause")?

stesso discorso?

2black2blue
09-12-2005, 14:18
Grazie Zero85, ho controllato, ora funziona! :unz:

Sei stato genitilissimo! :ciauz: :ciauz:

2black2blue
09-12-2005, 14:35
come non detto, non funziona sempre... :dhò: :dhò: :dhò:

che stress! :jam:

oregon
09-12-2005, 14:41
Scusa ... fai vedere quello che hai scritto?

2black2blue
09-12-2005, 14:49
Originariamente inviato da oregon
Scusa ... fai vedere quello che hai scritto?
Non far caso alla banalità del programma, ho appena iniziato:

Qui funziona:

include <stdio.h>

/* function main begins program execution */
int main( void )
{
printf( "Welcome to C!\n" );

system("pause");
} /* end function main */



Qui no:

#include <stdio.h>

/* function main begins program execution */
main()
{
int num1; /* first number to be read from user */
int num2; /* second number to be read from user */

printf( "Enter two integers, and I will tell you\n" );
printf( "the relationships they satisfy: " );

scanf( "%d%d", &num1, &num2 ); /* read two integers */

if ( num1 == num2 ) {
printf( "%d is equal to %d\n", num1, num2 );
} /* end if */

if ( num1 != num2 ) {
printf( "%d is not equal to %d\n", num1, num2 );
} /* end if */

if ( num1 < num2 ) {
printf( "%d is less than %d\n", num1, num2 );
} /* end if */

if ( num1 > num2 ) {
printf( "%d is greater than %d\n", num1, num2 );
} /* end if */

if ( num1 <= num2 ) {
printf( "%d is less than or equal to %d\n", num1, num2 );
} /* end if */

if ( num1 >= num2 ) {
printf( "%d is greater than or equal to %d\n", num1, num2 );
} /* end if */

system("pause");

} /* end function main */



Tra l'altro ho dovuto togliere l'istruzione "return 0;" che conclude in genere la funzione main...

oregon
09-12-2005, 14:53
Prova inserendo

fflush(stdin);
system("pause");

Eris
09-12-2005, 14:55
io uso lo stesso programma.anche io esame di ingegneria...

lo dovrebbe mettere di default il system("pause")


a me comunque va...


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

int main(int argc, char *argv[])
{int num1; /* first number to be read from user */
int num2; /* second number to be read from user */

printf( "Enter two integers, and I will tell you\n" );
printf( "the relationships they satisfy: " );

scanf( "%d%d", &num1, &num2 ); /* read two integers */

if ( num1 == num2 ) {
printf( "%d is equal to %d\n", num1, num2 );
} /* end if */

if ( num1 != num2 ) {
printf( "%d is not equal to %d\n", num1, num2 );
} /* end if */

if ( num1 < num2 ) {
printf( "%d is less than %d\n", num1, num2 );
} /* end if */

if ( num1 > num2 ) {
printf( "%d is greater than %d\n", num1, num2 );
} /* end if */

if ( num1 <= num2 ) {
printf( "%d is less than or equal to %d\n", num1, num2 );
} /* end if */

if ( num1 >= num2 ) {
printf( "%d is greater than or equal to %d\n", num1, num2 );
} /* end if */


system("PAUSE");
return 0;
}

2black2blue
09-12-2005, 15:01
Originariamente inviato da oregon
Prova inserendo

fflush(stdin);
system("pause");

dunque, così mi funziona anche includendo il return, l'importante è che in fase di compilazione faccio prima salvare il programma modificato...

ora farò ulteriori tentativi, mettendo soltanto system("pause"); non sempre mi andava bene... oppure sembrava quasi incompatibile col return 0;

Loading