matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
L'errore è il seguente
error C2660: 'std:ec': la funzione non accetta 0 argomenti
ma non capisco il perchè sapete aitarmi?è ottimizzabile il programma secondo voi?
grazie a tutti
Codice sorgente - presumibilmente C++ |
#include "stdafx.h" #include <iostream> using namespace std; class numerobinario { private: int decimale; int vett[50]; public: void dec(void); friend void and(); friend void or (); friend int complem(); }; int main() { int N; int scelta; do { cout<<"menu': "<<endl; cout<<"0)per convertire da decimale a binario"<<endl; cout<<"1)per convertire in decimale un numero binario"<<endl; cout<<"2)per fare l' AND bit a bit di un numero binario"<<endl; cout<<"3)per fare l' OR bit a bit di un numero binario"<<endl; cout<<"4)per fare il complemento a due di un numero binario"<<endl; cout<<"5)uscire!"<<endl; cin>>scelta; switch(scelta) { case 1: dec(); //convertire un numero binario in intero break; case 2: and(); //per fare AND bit a bit break; case 3: or(); //per fare l'or bit a bit break; case 4: complem();//per fare complemento a due del numero break; case 5: system("pause"); return EXIT_SUCCESS; break; } } while(scelta!=5); system("pause"); } void numerobinario::dec() { int num=32; int de=0,pos=0,bit=0; pos=num; do { cout<<"inserisci bit da sisnistra"<<endl; cin>>bit; de=de*2+bit; pos=pos-1; } while(pos!=0); cout<<de; } void and() { int num=32; int de=0,pos=0,bit=0,bit2=0,vett[50],i=0; pos=num; for(i=0;i<num;i++) { vett[i]=0; } for(i=0;i<num;i++) { cout<<"inserisci bit da sinistra del primo numero "<<endl; cin>>bit; cout<<"inserisci bit da sinistra del secondo numero "<<endl; cin>>bit2; int sam=(bit&bit2); vett[i]=sam; pos=pos-1; } for(i=0;i<num;i++) { cout<<vett[i]; } } void or() { int num=32; int de=0,pos=0,bit=0,bit2=0,vett[50],i=0; pos=num; for(i=0;i<num;i++) { vett[i]=0; } for(i=0;i<num;i++) { cout<<"inserisci bit da sinistra del primo numero "<<endl; cin>>bit; cout<<"inserisci bit da sinistra del secondo numero "<<endl; cin>>bit2; int sam=(bit|bit2); vett[i]=sam; pos=pos-1; } for(i=0;i<num;i++) { cout<<vett[i]; } } int complem() { int num=32,i=0,app=0; int vett[50]; bool flag=false; for(i=0;i<num;i++) { cout<<"inserisci il numero binario da destra verso sinistra carattere per carattere:"<<endl; cin>>app; vett[i]=!app; } for(i=0;i<num;i++) { if(i==0) { if(vett[i]==0) { flag=true; vett[i]=!(vett[i]); } else if(vett[i]==1) { flag=false; vett[i]=!vett[i]; } } else if(i!=0) { if(flag==true) { for(int k=num-1;k>=0;k--) { cout<<vett[k]; } system("pause"); return EXIT_SUCCESS; } else if(flag==false) { if(vett[i]==0) { flag=true; vett[i]=!vett[i]; } else if(vett[i]==1) { flag=false; vett[i]=!vett[i]; } } } } }
|
EDIT by Hedo: Il titolo non è conforme la regolamento, non esiste scrivere nel titolo "ciao a tutti", ma dove pensi che siamo? al bar? Per questa volta sistemo io, ma dalla prox il ban è immediato.
Ultima modifica effettuata da HeDo il 05/11/2009 alle 11:31 |
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
Che cavolo di compilatore usi? Non ti dà la riga dell'errore? Spero che sia una tua dimenticanza, altrimenti cestinalo.
Al massimo prova a togliere dalla funzione 'dec' quel 'void' tra i parametri. Anche se guardando così non ti saprei dire dove si trova l'errore. E poi perché i prototipi sono in una classe se poi non dichiari alcun oggetto 'numerobinario' e quando scrivi il corpo delle funzioni non usi lo scope e la funzione? È onestamente un codice pessimo.
Ultima modifica effettuata da gio97 il 04/11/2009 alle 20:13 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Gio97, non c'è lo scope perchè sono dei metodi friends... e in quanto tali non richiedono lo scope resolution operator ( :: ).
(Cerchiamo inoltre di non usare termini che potrebbero essere offensivi per favore...)
Matteog, potresti postarci l'intero messaggio di errore con la riga dove succede il problema? Penso anch'io che dovresti provare a sostituire
Codice sorgente - presumibilmente C/C++ |
con
Codice sorgente - presumibilmente C/C++ |
Il primo è scritto in stile C, ma qui stiamo scrivendo C++... quindi forse è quello che manda in errore il compilatore.
|
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
Postato originariamente da pierotofy:
Gio97, non c'è lo scope perchè sono dei metodi friends... e in quanto tali non richiedono lo scope resolution operator ( :: ).
(Cerchiamo inoltre di non usare termini che potrebbero essere offensivi per favore...) |
In effetti non mi ero accorto di come erano dichiarate le funzioni, e comunque non mi sembra offensivo dire di un sorgente che è pessimo, mi è stato detto molte volte e ho cercato di sistemarlo fino a quando non lo fosse più stato, soltanto gli spazi che ci sono fra una funzione e l'altra lo rendono "pessimo", non c'è ordine, ci sono 4 commenti (sono il primo che non mette un commento nel sorgente, però se va presentato ad altri è il caso di aggiungerli), poi ci sono variabili inizializzate in un modo e nella riga dopo inizializzate con un altro valore,
EDIT: Mi è caduto l'occhio qua
Codice sorgente - presumibilmente Plain Text |
sicuramente non si collega all'errore che hai avuto, però manca lo slash per l'apostrofo ' Ultima modifica effettuata da gio97 il 05/11/2009 alle 7:24 |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da gio97:
EDIT: Mi è caduto l'occhio qua
Codice sorgente - presumibilmente Plain Text |
sicuramente non si collega all'errore che hai avuto, però manca lo slash per l'apostrofo ' |
sbagli, l'apostrofo non è considerato un carattere speciale.
prima di editare pensaci
cmq anch'io credo sia un codice pessimo, sembra quasi un collage ad ogni modo ha ben poco senso dichiarare un classe e poi metterci i membri friend, sembra veramente una pezza "perchè non girava".
Non ho tempo di compilare il prog e a prima vista non trovo l'errore, se ci dicesse la riga sicuramente sapremmo aiutarlo meglio. Ultima modifica effettuata da HeDo il 05/11/2009 alle 11:35 |
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
Postato originariamente da HeDo:
Postato originariamente da gio97:
EDIT: Mi è caduto l'occhio qua
Codice sorgente - presumibilmente Plain Text |
sicuramente non si collega all'errore che hai avuto, però manca lo slash per l'apostrofo ' |
sbagli, l'apostrofo non è considerato un carattere speciale.
prima di editare pensaci
cmq anch'io credo sia un codice pessimo, sembra quasi un collage ad ogni modo ha ben poco senso dichiarare un classe e poi metterci i membri friend, sembra veramente una pezza "perchè non girava".
Non ho tempo di compilare il prog e a prima vista non trovo l'errore, se ci dicesse la riga sicuramente sapremmo aiutarlo meglio. |
Ne sei sicuro? Sui manuali che ho è scritto il contrario, ho controllato in questo momento. Ultima modifica effettuata da HeDo il 05/11/2009 alle 13:54 |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Controlla che il manuale sia di C++
|
|
gio97 (Ex-Member)
Guru
Messaggi: 715
Iscritto: 25/04/2009
|
Postato originariamente da HeDo:
Controlla che il manuale sia di C++ |
Senti pensa quello che vuoi, però questa risposta è come se mi stessi dando dell'idiota, se parlo di C++ non dico del manuale di C, ma di quello di C++.
Se guardi il mio profilo sono uno dei pochi che non mette C e C++ come una cosa sola, proprio perché so che non sono la stessa cosa. Ultima modifica effettuata da gio97 il 05/11/2009 alle 15:04 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
Si ' rientra nei caratteri speciali, ma quando usi i doppi apici lo slash non serve... prova a compilare:
Codice sorgente - presumibilmente Plain Text |
cout << "L'ora e' vicina..." << endl;
|
Vedrai che si eseguira' senza problemi...
Adesso fine dell'OT e aspettiamo che il nostro utente ci comunichi la riga dell'errore.
Ultima modifica effettuata da pierotofy il 05/11/2009 alle 16:13
|
|