View Full Version : [C++] domanda niubba..
ciao ragazzi..
ho appena iniziato ad interessarmi alla programmazione in c++ e seguendo una guida ho compilato il classico programmino che scrive una riga di testo...
il mio problema è che la finestra del programma si chiude istantaneamente..mi servirebbe qualcosa di simile all'ultimo readln del turbopascal..
un amico mi ha consigliato getch() ma nelle librerie iostream.h che mi fa usare la guida non c'è..
qualcuno può aiutarmi?
ciao ragazzi..
ho appena iniziato ad interessarmi alla programmazione in c++ e seguendo una guida ho compilato il classico programmino che scrive una riga di testo...
il mio problema è che la finestra del programma si chiude istantaneamente..mi servirebbe qualcosa di simile all'ultimo readln del turbopascal..
un amico mi ha consigliato getch() ma nelle librerie iostream.h che mi fa usare la guida non c'è..
qualcuno può aiutarmi?
In effetti si, dovresti usare un getch() che risiede nelle librerie iostream.h
prova con un system("pause"), non è un metodo correttissimo ma dovrebbe funzionare lo stesso
In effetti si, dovresti usare un getch() che risiede nelle librerie iostream.h
prova con un system("pause"), non è un metodo correttissimo ma dovrebbe funzionare lo stesso
ti ringrazio del suggerimento...ma credo che il problema risieda da qualche altra parte..infatti anche provando un programmino simile trovato sulla rete qui (http://cpiupiu.altervista.org/statistiche/download.php?id=3) il problema si ripresenta..non è che c'è qualche impostazione che ho trascurato?
uso dev-c++ 4.9.9.2 e windows vista home premium..
Don[ITA]
10-12-2008, 19:29
Anche quello che hai scaricato è senza system("PAUSE"), aggiungilo e vedrai che ti apparirà la solita frase "premere un tasto per continuare" o qualcosa di simile :)
;25381668']Anche quello che hai scaricato è senza system("PAUSE"), aggiungilo e vedrai che ti apparirà la solita frase "premere un tasto per continuare" o qualcosa di simile :)
proverò al più presto..ma il system("pause") va messo prima o dopo l'ultima parentesi graffa?
comunque mi pare strano che programmi preconfezionati abbiano difetti così grossolani.. :confused: :confused:
marko.fatto
10-12-2008, 19:56
programmi per console sono pensati per essere eseguiti direttamente dalla console..
comunque inserisci cin.get(); come ultima istruzione prima dell'ultima parentesi del main..
allora...il programma è così...
// il mio primo programma in C++
#include <iostream.h>
int main ()
{
cout << "Salve gente!";
return 0;
cin.get();
}
il sintomo è lo stesso..la finestra si chiude al'istante...però faccio in tempo a leggere la scritta "salve gente" quindi il programma in sè funziona...
:confused: :confused: :confused:
marko.fatto
10-12-2008, 21:49
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
cout << "Salve gente!";
cin.get();
return EXIT_SUCCESS;
}
Alex_87_xelA
10-12-2008, 21:50
allora...il programma è così...
// il mio primo programma in C++
#include <iostream.h>
int main ()
{
cout << "Salve gente!";
return 0;
cin.get();
}
il sintomo è lo stesso..la finestra si chiude al'istante...però faccio in tempo a leggere la scritta "salve gente" quindi il programma in sè funziona...
:confused: :confused: :confused:
ehhehe --- hai provato a mettere cin.get() prima del return ? :Prrr:
AAAAHHHHHNNNNNNNN!!!!!!!
cin.get() va messi PRIMA del return!!!
eh va be non lo sapevo... :D:D
ma perchè sul programma di marco.fatto dopo il return è scritto EXIT_SUCCESS invece dello 0?si puo scriverci qualsiasi cosa?
Alex_87_xelA
10-12-2008, 22:56
beh in teoria puoi scrivere qualsiasi numero intero ... ma devi sapere che quel numero poi viene restituito al sistema operativo ... e quando gli passi 0 vuol dire che è andato tutto bene ... come EXIT_SUCCES che è solo un define fatto così
#define EXIT_SUCCES 0
questo vuol dire che ovunque nel tuo codice metti quell'identificativo ... verrà sostituito con 0 :D
è il dev che non va in questo caso, quando sono passato dal turbo c++ al dev-c++ è stato un pò un incubo
alcune istruzioni tipo il getch() o il clrscr() non funzionano immediatamente, non ricordo come avevo fatto per farle funzionare :/
In effetti si, dovresti usare un getch() che risiede nelle librerie iostream.h
getch non riesiede nella libreria iostream.h, getch è una funzione non standard che è presente solo in alcuni ambienti di sviluppo.
è il dev che non va in questo caso, quando sono passato dal turbo c++ al dev-c++ è stato un pò un incubo
E' un bene che getch e clrscr non funzionino perché creano appunto cattive abitudini in chi programma. Non sono funzioni standard e come tali non devono essere presenti obbligatoriamente nella libreria del compilatore.
Usate system("pause") (o altre funzioni della libreria standard del C come getchar o del C++) o system("cls").
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.