Visualizza la versione completa : Programmare in C
sto iniziando a compilare in C
dopo aver scritto il mio bel programmino,lo lancio con Dev-C++
#include <stdio.h>
/* visualizza la tabella Fahrenheit-Celsius
per fahr = 0, 20, ..., 300; versione con virgola mobile */
main()
{
float fahr, celsius;
int lower, upper, step;
lower = 0; /* valore minimo in gradi F nella tabella delle temperature */
upper = 300; /* valore massimo in gradi F */
step = 20; /* intervallo fra due temperature in gradi F adiacenti */
fahr = lower;
while (fahr <= upper) {
celsius = (5.0/9.0) * (fahr-32.0);
printf("%3.0f %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}
il porogramma lo compila epoi lo esegue,ma la finestra dos appare e scompare velocissimamente
allora decido di inserire una pausa in modo da visualizzarlo con questo codice
system("PAUSE");
lo faccio compilare mi segnala che questa riga è errata..
perchè?
o meglio come faccio a inserire una pausa in modo da vedere il mio programma?
P.S chi ha una copia free di cygwin?
Potresti inserire un comando che aspetta un comando da tastiera tipo getchar()
In questo modo il programma non termina fin quando non premi un key
è un'idea,grazie mille
ma dove lo inserisco di preciso questo comando?
prima di return,dopo di return?
Ciao, non so niente si programmazione in C, però mi risulta che Cygwin sia distribuito con licenza free GPL e liberamente scaricabile dal sito ufficiale (http://cygwin.com/install.html) o anche da Softonic (http://cygwin.softonic.it/)
si il problema è che scaricare cygwin da internet è uno strazio,ci vogliono tipo 6 ore (con connessione adsl) perchè ti scarichi solo il setup dal sito ufficiale o da softronic,poi dei scegliere dove scaricare le librerie e tutto il resto da un elenco di siti che ti fornisce il programma stesso(oppure da un supporto rimuovibile),e lì son dolori perchè vai a scaricare con velocità ridicole,e oltretutto a un certo punto si blocca il download
---------- Post added at 20:31 ---------- Previous post was at 20:30 ----------
infatti mi sono stancato e al posto di cygwin ho scaricato dev c++ ma non so usarlo molto bene perchè il prof ci ha spiegato solo il funzionamento di cygwin
Allora il tuo programma è 'Main', praticamente è una funzione che ritorna 0.
Al momento del return la funzione si chiude e dealloca la memoria, perdendo tutto, finendo.
Se vuoi mettere una pausa la devi mettere prima del return.
Il "PAUSE" dovrebbe essere corretto, ma forse va in minuscolo.
Un altro modo barbaro è mettere un ciclo for molto lungo.
La soluzione più elegante è aspettare un comando da tastiera (sempre prima del return)
Magari intercetti il carattere e continui (con il return) solo se il carattere è il tasto 'Esc' o il taso 'q'
basta che invece di fare doppio click sull'eseguibile lo lanci dal prompt dei comandi :) e rimane l'output del programma a video :) anche dopo l'esecuzione del programma :)
Danilo Scaricato Eclipse per C/C++ :) è perfetto.. io uso la sua versione per Java
avevo letto questa cosa del lancio dal prompt,ma come?
Carlo so che ci sono programmi migliori di cygwin e più facilmente scaricabili,ma cygwin o dev c++ sono quelli utilizzati nel corso,e io non devo fare il programmatore di mestiere ma solo superare questo esame :ok
Appunto allora lascia devc++ per quanto riguarda il lancio degli eseguibili dal prompt vai su avvio - esegui - scrivi cmd - ti compare il prompt tramite comando cd arrivi nella dir dell'eseguibile tipo c:/document and settings/danilo/desktop per lanciare l'eseguibile scrivi il suo nome .exe e premi invio :)
Probabilmente non ha un eseguibile exe.
Leggendo il manuale o l'help del tuo compilatore dovresti trovare l'indicazione di come lanciare il tuo programma da prompt
Probabilmente sarà:
devc mioprogramma [-opzione]
Probabilmente lo tiene e lo lancia direttamente cliccandoci sopra.. Quando compili si crea in automatico l'eseguibile.....
Quello che hai scritto tu è per compilare non per lanciare l'esecuzione
Io non conosco quel compilatore, ma generalmente la funzione di un compilatore è di generare genera un file .o e non un eseguibile. Probabilmente compilatori evoluti creano anche l'eseguibile. Quello che uso io al lavoro non lo fa
e per eseguire l'applicazione è necessario lanciarla tramite un comando simile a quello che ho esposto sopra.
Se posso permettermi io mi trovo benissimo con Eclipse (anche se programmo in Java)
http://www.eclipse.org/callisto/c-dev.php
Le stampe del programma ti escono direttamente in Eclipse ed eviti di impazzire ;)
Dado71 gcc -o nomefile.c serve per compilare il programma ti viene creato un eseguibile che è una codifica linguaggio macchina del codice che hai scritto tu.. Altrimenti come si esegue secondo te? Dani fai come ti ho detto che funziona apl'inixio anche io facego cosi poi sono passato a unix e faccio tutto con da shell direttamente :)
Domanda: come faccio a mettere in pausa il compilatore all'esecuzione?
Risposta: cambia compilatore e sistema operativo!
Non so se gli stiamo risolvendo il problema...
Hai provato a vedere se tra le opzioni del compilatore c'è una cosa tipo "Pause on exit"?
Dani fai come ti ho detto che funziona apl'inixio anche io facego cosi poi sono passato a unix e faccio tutto con da shell direttamente
Raiden sey possedauto?!?
Phos vedo che hai colto il nocciolo della discussione,volevo solo inserire una riga per fermare l'esecuzione :ok
Domanda: come faccio a mettere in pausa il compilatore all'esecuzione?
Risposta: cambia compilatore e sistema operativo!
Non so se gli stiamo risolvendo il problema...
Hai provato a vedere se tra le opzioni del compilatore c'è una cosa tipo "Pause on exit"?
Raiden sey possedauto?!?
il touch screen dell'iphone alle volte fa scherzi :)
---------- Post added at 17:41 ---------- Previous post was at 17:38 ----------
Danì il tuo problema te l'ho risolto.. non si ferma l'esecuzione di un programma
potresti mettere una sleep di 500 secondi ma il problema rimane uguale.. La questione è che tu apri il programma cliccandoci sopra quindi al suo rilascio si chiude l'applicazione compreso la finestra, per vedere invece l'output si lancia il programma dal prompt dei comandi.. Il problema non si pone proprio dato che quando devi lanciare un programma in C (a meno che non sia con grafica) si lancia dal prompt.. come ti ho spiegato prima..
Phos, mi spiace per il tuo commento, personalmente un pò inutile, io non gli ho detto di cambiare sistema operativo o altro, gli ho dato una soluzione al suo "non problema", cioè operare nello stesso modo come operano tutti quando devono lanciare un eseguibile fatto in C su Windows..
@Danilo vuoi mettere una riga per fermare l'esecuzione?
all'inizio del programma metti
#include <unistd.h>
e prima del return metti sleep(10); (sono 10 secondi) vedi che dopo 10 secondi ovviamente si chiude ugualmente la finestra
vBulletin® v3.8.5, Copyright ©: 2000-2024, Jelsoft Enterprises Ltd.
Traduzione italiana Team: vBulletin-italia.it |