Grazie!
Ho fatto il download del pacchetto. Quindi, stasera, a casa, e' sufficente eseguire il setup?
Grazie!
Ho fatto il download del pacchetto. Quindi, stasera, a casa, e' sufficente eseguire il setup?
Bene.
ho installato il pacchetto e ho scritto un semplice programmino. Compilo. Tutto OK. Eseguo. La finestra di DOS nn si apre! Più precisamente, "flasha", cioè appare per una frazione di secondo e poi si chiude. E in quella frazione di secondo io riesco a vedere che stampa correttamente l'output del programma. Che succede? Devo inserire un comando specifico nel programma che dica di tenere attiva la finestra DOS per visualizzare l'output?
Leggi il quarto post di questa discussione ..
E' vero! Era tutto già scritto... sorry!
Già che ci sono, per farm perdonare la mia disattenzione, aggiungo un'informazione che ho trovato consultando le risorse on line del compilatore:
da http://www.bloodshed.net/dev/faq.html#pause
GiuliaHow do I emulate the MS-DOS pause function?
There are two ways. You can do it this way:
#include <stdio.h>
int main()
{
printf ("Press ENTER to continue.\n");
getchar (); // wait for input
return 0;
}
Or this way:
#include <stdlib.h>
int main()
{
system ("pause"); // execute M$-DOS' pause command
return 0;
}
Ho provato entrambe le funzioni per la pausa e quella che sfrutta "getchar()" non mi funziona. Non è un problema, perché posso usare l'altra, ma vorrei capire il perché!
In pratica devo mettere due volte getchar(), altrimenti il programma si chiude, come se getchar() non ci fosse.
Come mai?
Sono su Windows... Dipende forse dal fatto che l'invio di Windows occupa i caratteri 10 e 13 (che sono due) e quindi dopo uno scanf usato nel programma rimane un "carattere in sospeso" che viene intercettato dal successivo getchar()?
Se è così, i programmatori che solitamente usano C come risolvono la questione del getchar() normalmente?
"Meglio un aiuto che 50 consigli"
(tratto dalle barrette Elah)
Fai una cosa : apri il prompt dei comandiVVoVe:, entra nella cartella dove si trova l'eseguibile ed eseguilo.
L'ho fatto, ma il risultato è lo stesso. Non è che sono io a sbagliare il codice? (non conoscendo molto bene il C)
Riporto qui un programma di esempio solo per la pausa che mi genera il problema:
Partendo da DOS posso leggere ciò che il programma ha stampato, ma il programma non attende la pressione di un tasto da parte dell'utente prima di concludersi...Codice PHP:
#include <stdio.h>
int main() {
char invio; int n;
printf("Scrivi un numero: ");
scanf("%d", &n);
printf("Hai scritto %d.\n", n);
printf("Sono in pausa... Premi invio!");
invio = getchar();
return 0;
}
"Meglio un aiuto che 50 consigli"
(tratto dalle barrette Elah)
codice:int n; printf("Scrivi un numero: "); scanf("%d", &n); printf("Hai scritto %d.\n", n); printf("Sono in pausa... Premi invio!"); while(!getchar()) ; getchar(); return 0;
Grazie, Oregon!
Funziona come volevo io.
Potresti dirmi perché getchar() restituisce uno 0 la prima volta che viene invocato?
Grazie, ciao![]()
"Meglio un aiuto che 50 consigli"
(tratto dalle barrette Elah)