[Supporto] Problema esecuzione programmi
-
giacomopatermo
- Prode Principiante
- Messaggi: 27
- Iscrizione: venerdì 5 agosto 2011, 23:04
[Supporto] Problema esecuzione programmi
Ciao a tutti, ho voluto creare un piccolo programma in C++, dopo averlo compilato, si crea l'eseguibile, lo eseguo, ma non succede nulla, anzi, il processo del programma nel monitor di sistema c'è, ma mi fa lavorare al 100% la CPU, allora non mi resta che killarlo, ho provato ad eseguirlo da windows, ma non mi riconosce l'estensione, anzi non c'è proprio. Viceversa, se creo lo stesso programma con windows, funziona sia su Ubuntu, Mac e ovviamente Windows. Ho provato sia con Gedit che con Code::Blocks, cosa potrebbe essere? Grazie.
-
Bakuriu
- Entusiasta Emergente

- Messaggi: 1156
- Iscrizione: venerdì 23 ottobre 2009, 23:43
- Desktop: KDE4
- Distribuzione: Kubuntu 12.04 LTS - x86_64
Re: [Supporto] Problema esecuzione programmi
Senza nè codice, nè informazioni su come compili non si può dire niente.
Il fatto che consumi il 100% di CPU potrebbe essere a causa di un loop infinito.
PS: se compili su linux ovviamente non puoi usare lo stesso eseguibile su windows. Vale anche il viceversa, un exe lo puoi far girare su linux solo tramite wine/virtual box etc.
Un "problema" di molti linguaggi compilati è che devi compilare il codice per tutti i diversi SO/architetture.
Il fatto che consumi il 100% di CPU potrebbe essere a causa di un loop infinito.
PS: se compili su linux ovviamente non puoi usare lo stesso eseguibile su windows. Vale anche il viceversa, un exe lo puoi far girare su linux solo tramite wine/virtual box etc.
Un "problema" di molti linguaggi compilati è che devi compilare il codice per tutti i diversi SO/architetture.
-
giacomopatermo
- Prode Principiante
- Messaggi: 27
- Iscrizione: venerdì 5 agosto 2011, 23:04
Re: [Supporto] Problema esecuzione programmi
Sto creando una programma che tenga tutti i dati per non scordarli, l'ho fatto perchè mia sorella si dimentica sempre i dati di account online, comunque ecco il source:
È che non ho mai programmato su Ubuntu con il C/C++, su Ubuntu programmo in Python, soprattutto con librerie opengl. Comunque ritornando al codice sopra, cosa c'è che non va?
Codice: Seleziona tutto
#include <iostream>
using namespace std;
int main()
{
int tipo;
char controllore;
cout << "ACCOUNT/PASSWORD NOME" << endl;
cout << "------------------------" << endl << endl;
cout << "SCRIVI IL NUMERO CORRISPONDENTE A I DATI CHE VUOI VEDERE:\n\n";
while (1){
cout << "1 - YOUTUBE\n2 - FACEBOOK\n3 - GMAIL\n4 - YAHOO\n\n";
cin >> tipo;
if ( tipo == 1 ){
cout << endl;
//ANCORA DA METTERE
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin.get();
cin.get();
}
else if ( tipo == 2 ){
cout << endl;
//ANCORA DA METTERE
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin.get();
cin.get();
}
else if ( tipo == 3 ){
cout << endl;
//ANCORA DA METTERE
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin.get();
cin.get();
}
else if ( tipo == 4 ){
cout << endl;
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin.get();
cin.get();
}
}
return 0;
}
Ultima modifica di giacomopatermo il lunedì 29 agosto 2011, 13:27, modificato 1 volta in totale.
-
Vonkes
- Prode Principiante
- Messaggi: 73
- Iscrizione: martedì 15 agosto 2006, 19:15
- Località: Roma
- Contatti:
Re: [Supporto] Problema esecuzione programmi
hai provato a realizzarlo con python visto che lo conosci?
vonkes vecchio clipparolo giovane pythoniano
vonkes vecchio clipparolo giovane pythoniano
Vecchiom Clipparolo e nuovo pythoniano
-
Bakuriu
- Entusiasta Emergente

- Messaggi: 1156
- Iscrizione: venerdì 23 ottobre 2009, 23:43
- Desktop: KDE4
- Distribuzione: Kubuntu 12.04 LTS - x86_64
Re: [Supporto] Problema esecuzione programmi
Diciamo che non so perchè quel codice dovrebbe avere comportamenti strani...
il ciclo infinito c'è, ma usando cin comunque dovrebbe aspettare il tuo input.
So che cin può causare problemi con input non validi, forse tu gli stai dando numeri non validi?
In caso prova a leggere questo post che spiega come ottenere l'input senza usare cin ed in maniera più sicura peril typechecking.
Come suggerimento ti potrei dire che al posto degli if metterei un switch case e inoltre il codice che usi per visualizzare le informazioni potresti raggrupparlo in una funzione in modo da non ripeterlo uguale sempre. Nel case estrai dai file le informazioni e poi chiami la funzione per visualizzarle.
Comunque aspetta il resoconto di chi se ne intende di più di C++...
il ciclo infinito c'è, ma usando cin comunque dovrebbe aspettare il tuo input.
So che cin può causare problemi con input non validi, forse tu gli stai dando numeri non validi?
In caso prova a leggere questo post che spiega come ottenere l'input senza usare cin ed in maniera più sicura peril typechecking.
Come suggerimento ti potrei dire che al posto degli if metterei un switch case e inoltre il codice che usi per visualizzare le informazioni potresti raggrupparlo in una funzione in modo da non ripeterlo uguale sempre. Nel case estrai dai file le informazioni e poi chiami la funzione per visualizzarle.
Comunque aspetta il resoconto di chi se ne intende di più di C++...
Re: [Supporto] Problema esecuzione programmi
Ciao
Sei sicuro che ti occupa il 100 % della CPU?
Ho provato e non mi risulta, anzi mi va correttamente in stato sleep.
Fai una cosa:
compilalo con g++ sorgente.cpp -o progr
poi mettilo in esecuzione con ./progr
e poi posta:
Sei sicuro che ti occupa il 100 % della CPU?
Ho provato e non mi risulta, anzi mi va correttamente in stato sleep.
Fai una cosa:
compilalo con g++ sorgente.cpp -o progr
poi mettilo in esecuzione con ./progr
e poi posta:
Codice: Seleziona tutto
ps faux | grep progr...Meglio un terminale oggi Che un Crash oggi e domani...E dopodomani....
Re: [Supporto] Problema esecuzione programmi
Ei... Io non so darti soluzioni al tuo problema riguardo al fatto che tu non riesca a far partire l'eseguibile.
Però posso darti dei consigli a livello di codice. Io non programmo in C++ ne in C però l'ho studiato e ti posso dire che non servono tutti quegli if... Basta un solo switch e vari case...
si usa così:
Come ti ho detto non conosco bene il C++ quindi prova a vedere (QUI)http://www-numi.fnal.gov/computing/d120/releases/development/WebDocs/Companion/cxx_crib/switch.html come funziona, esattamente. Però scusa secondo me il tuo programma è pensato un pochino male
.
Però posso darti dei consigli a livello di codice. Io non programmo in C++ ne in C però l'ho studiato e ti posso dire che non servono tutti quegli if... Basta un solo switch e vari case...
si usa così:
Codice: Seleziona tutto
switch(condizione){
case 1: bla bla bla;
break;
case 2: e continui con tutti i case!
break;
}- Eni
- Scoppiettante Seguace

- Messaggi: 652
- Iscrizione: martedì 21 luglio 2009, 14:28
- Località: Campania
Re: [Supporto] Problema esecuzione programmi
windows non legge i file .cpp se non hai un compilatore o impostato il notepad per quei file...e per avviarlo devi compilarlo su windows...non è come python che fai e avvii tramite compilatore direttamente! devi creare il .sh...
poi...se quei cin.get() servono a mettere in pausa non sono necessari su ubuntu...se proprio vuoi mettere in pausa dai un
in cui a è una variabile char
quell'if non è tanto efficiente poi e perdi tempo a farlo...consiglio uno switch...come gia suggerito...
se ti serve uscire dal ciclo o dallo switch usa un:
p.s.
cin.get() da problemi coi numeri se superi il limite della variabile come tutte le cose simili del resto...dato che da un valore NULL premendo invio allora sarebbe 0 che gli dai
del tipo fai:
si potrebbe restringere ancora di più il codice usando gli operatori ?: ma dato che non programmi in C/C++ lasciamoli perdere altrimenti non capiresti il codice...
provalo dimmi se hai problemi (ho modificato al volo il tuo perdona eventuali errori di sinstassi...)
il void davanti al mail potrebbe dare warning su alcuni compilatori...è xke il compilatore considera che il main deve dare un valore di ritorno...ma fa lo stesso...
poi...se quei cin.get() servono a mettere in pausa non sono necessari su ubuntu...se proprio vuoi mettere in pausa dai un
Codice: Seleziona tutto
cin>>a;quell'if non è tanto efficiente poi e perdi tempo a farlo...consiglio uno switch...come gia suggerito...
se ti serve uscire dal ciclo o dallo switch usa un:
Codice: Seleziona tutto
break;cin.get() da problemi coi numeri se superi il limite della variabile come tutte le cose simili del resto...dato che da un valore NULL premendo invio allora sarebbe 0 che gli dai
del tipo fai:
Codice: Seleziona tutto
#include <iostream>
using namespace std;
void main(void){
int tipo;
char controllore,a;
cout << "ACCOUNT/PASSWORD NOME" << endl;
cout << "------------------------" << endl << endl;
cout << "SCRIVI IL NUMERO CORRISPONDENTE A I DATI CHE VUOI VEDERE:\n\n";
while (1){
cout << "1 - YOUTUBE\n2 - FACEBOOK\n3 - GMAIL\n4 - YAHOO\n\n";
cin >> tipo;
switch(tipo){
case 1:
cout << endl;
//ANCORA DA METTERE
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin>>a;
break;
case 2:
cout << endl;
//ANCORA DA METTERE
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin>>a;
break;
case 3:
cout << endl;
//ANCORA DA METTERE
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin>>a;
break;
case 4:
cout << endl;
cout << "E-MAIL:" << endl;
cout << "PASSWD:" << endl << endl;
cout << "Premi ENTER per avanzare..." << endl << endl;
cin>>a;
break;
}
}
}provalo dimmi se hai problemi (ho modificato al volo il tuo perdona eventuali errori di sinstassi...)
il void davanti al mail potrebbe dare warning su alcuni compilatori...è xke il compilatore considera che il main deve dare un valore di ritorno...ma fa lo stesso...
Ultima modifica di Eni il martedì 30 agosto 2011, 23:15, modificato 1 volta in totale.
disse il saggio Ping Pong...windows si "impala" un passo alla volta..........linux si "impala" difficilmente...
-
giacomopatermo
- Prode Principiante
- Messaggi: 27
- Iscrizione: venerdì 5 agosto 2011, 23:04
Re: [Supporto] Problema esecuzione programmi
No, uguale, mi si blocca e mi occupa il 100% della CPU fa anche degli sballzi fino a 200% il che è impossibile, visto che il massimo è 100, mah.enimrac ha scritto: windows non legge i file .cpp se non hai un compilatore o impostato il notepad per quei file...e per avviarlo devi compilarlo su windows...non è come python che fai e avvii tramite compilatore direttamente! devi creare il .sh...
poi...se quei cin.get() servono a mettere in pausa non sono necessari su ubuntu...se proprio vuoi mettere in pausa dai unin cui a è una variabile charCodice: Seleziona tutto
cin>>a;
quell'if non è tanto efficiente poi e perdi tempo a farlo...consiglio uno switch...come gia suggerito...
se ti serve uscire dal ciclo o dallo switch usa un:p.s.Codice: Seleziona tutto
break;
cin.get() da problemi coi numeri se superi il limite della variabile come tutte le cose simili del resto...dato che da un valore NULL premendo invio allora sarebbe 0 che gli dai
del tipo fai:si potrebbe restringere ancora di più il codice usando gli operatori ?: ma dato che non programmi in C/C++ lasciamoli perdere altrimenti non capiresti il codice...Codice: Seleziona tutto
#include <iostream> using namespace std; void main(void){ int tipo; char controllore,a; cout << "ACCOUNT/PASSWORD NOME" << endl; cout << "------------------------" << endl << endl; cout << "SCRIVI IL NUMERO CORRISPONDENTE A I DATI CHE VUOI VEDERE:\n\n"; while (1){ cout << "1 - YOUTUBE\n2 - FACEBOOK\n3 - GMAIL\n4 - YAHOO\n\n"; cin >> tipo; switch(tipo){ case 1: cout << endl; //ANCORA DA METTERE cout << "E-MAIL:" << endl; cout << "PASSWD:" << endl << endl; cout << "Premi ENTER per avanzare..." << endl << endl; cin>>a; break; case 2: cout << endl; //ANCORA DA METTERE cout << "E-MAIL:" << endl; cout << "PASSWD:" << endl << endl; cout << "Premi ENTER per avanzare..." << endl << endl; cin>>a; break; case 3: cout << endl; //ANCORA DA METTERE cout << "E-MAIL:" << endl; cout << "PASSWD:" << endl << endl; cout << "Premi ENTER per avanzare..." << endl << endl; cin>>a; break; case 4: cout << endl; cout << "E-MAIL:" << endl; cout << "PASSWD:" << endl << endl; cout << "Premi ENTER per avanzare..." << endl << endl; cin>>a; break; } } }
provalo dimmi se hai problemi (ho modificato al volo il tuo perdona eventuali errori di sinstassi...)
il void davanti al mail potrebbe dare warning su alcuni compilatori...è xke il compilatore considera che il main deve dare un valore di ritorno...ma fa lo stesso...
Re: [Supporto] Problema esecuzione programmi
durzino ha scritto: Ciao
Sei sicuro che ti occupa il 100 % della CPU?
Ho provato e non mi risulta, anzi mi va correttamente in stato sleep.
Fai una cosa:
compilalo con g++ sorgente.cpp -o progr
poi mettilo in esecuzione con ./progr
e poi posta:Codice: Seleziona tutto
ps faux | grep progr
...Meglio un terminale oggi Che un Crash oggi e domani...E dopodomani....
- Eni
- Scoppiettante Seguace

- Messaggi: 652
- Iscrizione: martedì 21 luglio 2009, 14:28
- Località: Campania
Re: [Supporto] Problema esecuzione programmi
secondo me potrebbe dipendere dal ciclo infinito (anche se la vedo difficile)
prova con una condizione del tipo
che poi sale al 200% non credo sia possibile :o forse è qualche errore nel sistem monitor...per forza non vedo altre alternative...il 200% significa una CPU co overclock del 100%...e così la bruci dopo circa 30 millesimi di secondo (rotfl)
prova a vedere con
I processi aperti e come si comportano quando hai il tuo programma aperto...e posti tutto...
poi fai anche
prova con una condizione del tipo
Codice: Seleziona tutto
while(i<=1000)che poi sale al 200% non credo sia possibile :o forse è qualche errore nel sistem monitor...per forza non vedo altre alternative...il 200% significa una CPU co overclock del 100%...e così la bruci dopo circa 30 millesimi di secondo (rotfl)
prova a vedere con
Codice: Seleziona tutto
toppoi fai anche
durzino ha scritto:durzino ha scritto: Ciao
Sei sicuro che ti occupa il 100 % della CPU?
Ho provato e non mi risulta, anzi mi va correttamente in stato sleep.
Fai una cosa:
compilalo con g++ sorgente.cpp -o progr
poi mettilo in esecuzione con ./progr
e poi posta:Codice: Seleziona tutto
ps faux | grep progr
Ultima modifica di Eni il martedì 6 settembre 2011, 21:18, modificato 1 volta in totale.
disse il saggio Ping Pong...windows si "impala" un passo alla volta..........linux si "impala" difficilmente...
Re: [Supporto] Problema esecuzione programmi
...non prendetemi troppo in giro per la risposta che sto per dare (per favore :'()
Scherzi a parte... leggendo quanto hai scritto nel primo messaggio
Scherzi a parte... leggendo quanto hai scritto nel primo messaggio
mi è venuto il dubbio che tu cerchi di eseguire il programma semplicemente cliccandoci sopra due volte... hai provato chiamandolo dal terminale? (come del resto aveva già suggerito giustamente durzino)dopo averlo compilato, si crea l'eseguibile, lo eseguo, ma non succede nulla
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti