View Full Version : sospendere un programma finchè non premo un tasto in C
c'è una istruzione che sospende il programma finchè non premo un tasto (anche solo Invio va bene) in C?
C'è l'istruzione sleep() ma sospende per un tempo predeterminato.
#include <stdio.h>
int main()
{
printf("Premi INVIO per continuare...");
getchar();
return 0;
}
Originariamente inviato da cionci
#include <stdio.h>
int main()
{
printf("Premi INVIO per continuare...");
getchar();
return 0;
}
geniale nella sua banalità
ma getchar non fa parte della libreria string.h?
getchar nello standard ANSI è in stdio.h...
Fenomeno85
16-09-2003, 19:34
ma come mai metti return (0) nella funzione main???
comunque basta
#include <stdio.h>
#include <conio.h>
void main ()
{
getch ();
}
getch non è funzione dello standard ANSI...
Ritorno 0 perchè metto int main...il main dovrebbe sempre ritornare un intero (è il famoso errorlevel del dos)...
Fenomeno85
16-09-2003, 19:40
Originariamente inviato da cionci
getch non è funzione dello standard ANSI...
Ritorno 0 perchè metto int main...il main dovrebbe sempre ritornare un intero (è il famoso errorlevel del dos)...
ehm allora dovrei sempre far ritornare. Comunque vuol dire che sbaglio a usare getch () e a non far ritornare il valore? poi questo standar mi potresti dare qualche info?
Intanto per programmare un po' più standard bisogna cominciare a non usare compilatori C/C++ Borland...
Fenomeno85
16-09-2003, 19:58
visual studio va bene??
Originariamente inviato da cionci
Intanto per programmare un po' più standard bisogna cominciare a non usare compilatori C/C++ Borland...
:D
Originariamente inviato da Fenomeno85
visual studio va bene??
Perchè non ti scarichi questo?
www.mingw.org
Poi attivi il flag -ansi -pedantic e stai sicuro che tutto ciò che non è standard non lo usi perchè il compilatore lo rigetta.
E se vuoi un ide:
http://www.bloodshed.net/devcpp.html
concordo sul fatto che è meglio attenersi agli standard quando si programma in un certo linguaggio.
in caso contrario si prendono delle "brutte abitudini" che finiscono col creare problemi quando si cambia compilatore ecc.
Originariamente inviato da cionci
Intanto per programmare un po' più standard bisogna cominciare a non usare compilatori C/C++ Borland...
io sto iniziando ad usare DJGPP con interfaccia RHIDE (non ridete che vi sento :) )
è l'unico che conosco che è gratuito.
Mi ero dimenticato che se si vuole evitare che caratteri immessi (se si premono altri caratteri prima dell'invio) restino nello standard input (potrebbero influenzare una successiva chiamata a getchar) allora bisogna cancellarli dallo stdin...
#include <stdio.h>
int main()
{
printf("Premi INVIO per continuare...");
getchar();
fflush(stdin);
printf("Premi INVIO per continuare...");
getchar();
fflush(stdin);
return 0;
}
Originariamente inviato da Killian
io sto iniziando ad usare DJGPP con interfaccia RHIDE (non ridete che vi sento :) )
è l'unico che conosco che è gratuito.
Perchè dovremmo ridere...Anzi...Quegli strumenti ti consentono di focalizzarti sul linguaggio senza stare a badare alle questioni idiosincratiche del linguaggio proprietario. Ricorda il mitico flag '-ansi -pedantic' altrimenti il compilatore potrebbe continuare ad accettare alcune estensioni GNU non propriamente standard
Originariamente inviato da mjordan
Perchè dovremmo ridere...Anzi...Quegli strumenti ti consentono di focalizzarti sul linguaggio senza stare a badare alle questioni idiosincratiche del linguaggio proprietario.
mamma mia come parli difficile :nonsifa:
il termine deriva per caso da una parola straniera?
mi pare che c'è un termine simile in italiano ma non ricordo il significato e non l'ho manco trovato sul vocabolario! :eek:
Originariamente inviato da recoil
mamma mia come parli difficile :nonsifa:
il termine deriva per caso da una parola straniera?
mi pare che c'è un termine simile in italiano ma non ricordo il significato e non l'ho manco trovato sul vocabolario! :eek:
No, è italiano. Deriva da idiosincrasia. Ha origini greche. Significa "miscela di particolari". Nel nostro caso riferendoci ad un linguaggio "una miscela di implementazioni non standard" :D
Originariamente inviato da mjordan
No, è italiano. Deriva da idiosincrasia. Ha origini greche. Significa "miscela di particolari". Nel nostro caso riferendoci ad un linguaggio "una miscela di implementazioni non standard" :D
ecco che saltano fuori i limiti culturali di un povero ragioniere... :rolleyes:
Originariamente inviato da mjordan
Ricorda il mitico flag '-ansi -pedantic' altrimenti il compilatore potrebbe continuare ad accettare alcune estensioni GNU non propriamente standard
non ho capito, devo far partire il programma in questo modo: "rhide.exe -ansi - pedantic" oppure ti riferisci a qualcos'altro?
-ansi -pedantic sono i parametri da passare al GCC...
Originariamente inviato da cionci
-ansi -pedantic sono i parametri da passare al GCC...
scusa l'ignoranza, ma non ho ben capito.
Sono i parametri per il compilatore... Nel tuo caso il DGJPP (che non altro che un porting per Windows del GCC)... Comunque io ti consiglio nuovamente Dev-C++ con il mingw32...DJGPP non mi è mai piaciuto...
Originariamente inviato da cionci
Sono i parametri per il compilatore... Nel tuo caso il DGJPP (che non altro che un porting per Windows del GCC)... Comunque io ti consiglio nuovamente Dev-C++ con il mingw32...DJGPP non mi è mai piaciuto...
quasi quasi lo provo (il Dev-C++) solo che sul sito ci sono 2 versioni, la 4 e la 5 beta, quale mi consigli? Anche se sarei orientato sulla 4, non mi fido troppo delle beta.
La 5 beta ed aggiorna con vUpdate appena l'hai installata...
Originariamente inviato da cionci
La 5 beta ed aggiorna con vUpdate appena l'hai installata...
ho fatto come hai detto tu e sembra davvero un buon prodotto.
mi è venuta una curiosità riferita proprio alla domanda posta da me all'inizio di questa discussione, creando un nuovo progetto, mi ha automaticamente creato il seguente codice (preciso che ho scelto un programma da console in linguaggio C)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("\nciao mondo\n");
system("PAUSE");
return 0;
}
l'unica mia aggiunta è stata il printf, ovviamente come prova. Quindi per mettere in pausa un programma si può anche usare "system("PAUSE");", oltre al getchar come mi avevi suggerito.
Certo, ma non è portabile...
Il getchar funziona, ma bisogna utilizzare alcuni accorgimenti (come vedi nel secondo codice che ho postato in quella discussione)...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.