Fredrik90 Skrevet 11. april 2004 Del Skrevet 11. april 2004 (endret) har et problem jeg er en skjikkelig nuub.så her er det. jeg leser en bok om c++.og i en oppgave står dte at du skal lage et program som gjør om fra tommer til cm. her er koden hva er feil #include <iostream> #include <stdlib.h> using namespace std; int main(int argc, char *argv[]) { double tommer cout << "hvor mange tommer";//den sier at feilen er her cin>>tommer; double cm cm=tommer*2.54 cout << "det blir"<<cm; system("PAUSE"); return 0; } EDIT : Du burde lære deg å kode bedre emnefelt først :-) Har endret det for deg. Endret 26. juni 2004 av Afseth Lenke til kommentar
Bøb Skrevet 11. april 2004 Del Skrevet 11. april 2004 Ser ut som om du har glemt et par semikolon ved første øyekast i det minste. Lenke til kommentar
☀ ❄ Skrevet 11. april 2004 Del Skrevet 11. april 2004 (endret) ...eller tre. Det heter dessuten <cstdlib> (ikke <stdlib.h>) Dessuten er cin.get(); er bedre enn system("pause"); (For å bruke cin.get(); må du ha cin.ignore(); over når du tar imot input i løpet av programmet, slik du gjør.) De to siste tingene jeg nevnte har med "good programming practice" å gjøre. Du bør gjøre noe med det og, men for å få kompilert må du nok legge til noen semikolon Edit: Post 200 Endret 11. april 2004 av Myubi Lenke til kommentar
Fredrik90 Skrevet 11. april 2004 Forfatter Del Skrevet 11. april 2004 (endret) jeg satte in cin.get() det virker.men hele programe forsvinner før jeg får sett svaret .takk for all hjelp Myubi .kan noen hjelpe meg her. kan du kanskje legge til et eksempel på cin.ignor. Endret 11. april 2004 av Fredrik90 Lenke til kommentar
☀ ❄ Skrevet 11. april 2004 Del Skrevet 11. april 2004 Du må bruke cin.ignore() først, slik: #include <iostream> int main() { std::cout << "Enter value: "; int x; std::cin >> x; // Her blir det "hengende igjen" en \n, som gjør at // cin.get() returnerer øyeblikkelig std::cout << "You entered: " << x << std::endl; std::cin.ignore(); // Ignorerer \n'en std::cin.get(); // Nå funker den :) return 0; } Lenke til kommentar
Fredrik90 Skrevet 11. april 2004 Forfatter Del Skrevet 11. april 2004 så det blir i hovedsak std:: foran alle cin og cout. og en std::cin.ignore(); til slutt før cin.get() Lenke til kommentar
☀ ❄ Skrevet 11. april 2004 Del Skrevet 11. april 2004 (endret) std::'ene blir det samme som å ha using namespace std; Altså, alle eksemplene er ekvivalente: #include <iostream> int main() { using namespace std; cout << "Hello World!\n"; cin.get(); return 0; } #include <iostream> int main() { using std::cout; using std::cin; cout << "Hello World!\n"; cin.get(); return 0; } #include <iostream> int main() { std::cout << "Hello World!\n"; std::cin.get(); return 0; } Merk: Hvis du bruker cin >> ..., må du ha med cin.ignore();Hvis ikke er det nok med cin.get(); Edit: La til cin.get() Endret 11. april 2004 av Myubi Lenke til kommentar
Fredrik90 Skrevet 11. april 2004 Forfatter Del Skrevet 11. april 2004 tusen takk for all hjelp.dette hjalp meg veldig mye. Lenke til kommentar
Fredrik90 Skrevet 13. april 2004 Forfatter Del Skrevet 13. april 2004 nok en gang har jeg problemer. hva er feil her. #include <iostream> #include <stdlib.h> using namespace std; int beregnsvar(double tall1,double tall2,char regneart); int main(int argc, char *argv[]) { double tall1; double tall2; char regneart; double svar cout << "skriv regnestykket."; cin >>tall1>>regneart>>tall2 int svar=beregnsvar(tall1,tall2,regneart); cout <<tall1<<" "<<regneart<<" "<<tall2; cout << "="<<svar<<endl; cin.ignor cin.get }//slutt main // //------------------------------------------------------------------------------ //funksjonen beregnsvar // double beregnsvar( double tall1, //inn double tall, //inn char rgneart) //inn { int svar; if (regneart=='+') svar=tall1+tall2; if (regneart=='-') svar=tall1-tall2; if (regneart=='*') svar=tall1*tall2; if (regneart=='/') svar=tall1/tall2; return svar; //slutt funskjon beregnsvar jeg trenger virkelig hjelp her. Lenke til kommentar
☀ ❄ Skrevet 13. april 2004 Del Skrevet 13. april 2004 Jeg tror du skal se på hva kompilatoren din sier deg, og se litt nøyere på syntaksen din (se på f.eks. semikolon, parenteser, kommaer, { og }, osv). Lenke til kommentar
Dead_Rabbit Skrevet 13. april 2004 Del Skrevet 13. april 2004 (endret) double beregnsvar( double tall1, //inn double tall, //inn char rgneart) //inn { int svar; if (regneart=='+') svar=tall1+tall2; if (regneart=='-') svar=tall1-tall2; if (regneart=='*') svar=tall1*tall2; if (regneart=='/') svar=tall1/tall2; } // blant annet denne glemte du return svar; //slutt funskjon beregnsvar[/code] jeg trenger virkelig hjelp her. Tror koden ville blitt mer ryddig hvis du kansje hadde brukt switch isteden for if, slik: double beregnsvar( double tall1, //inn double tall, //inn char rgneart) //inn { int svar; switch (svar) { case '+': svar = tall1+tall2; break; case '-': svar = tall1-tall2; break; case '*': svar = tall1*tall2; break; case '/': svar = tall1/tall2; break; } EDIT:Og noe er selfølgelig skrevet litt dumt , og må rettes på. Endret 13. april 2004 av zirener Lenke til kommentar
☀ ❄ Skrevet 14. april 2004 Del Skrevet 14. april 2004 Og hvis du bruker switch(regneart) { /* ... */ } får du kanskje tilogmed ønsket resultat. Lenke til kommentar
Fredrik90 Skrevet 14. april 2004 Forfatter Del Skrevet 14. april 2004 (endret) hva betyr den switch greia for noe. jeg har bare programert en uke,så jeg er en skikkelig nuub. mer problemer. #include <iostream> #include <stdlib.h> using namespace std; int beregnsvar(double tall1,double tall2,char regneart); int main(int argc, char *argv[]) { double tall1; double tall2; char regneart; double svar cout << "skriv regnestykket.";//den sier at feilen er her cin >>tall1>>regneart>>tall2 int svar=beregnsvar(tall1,tall2,regneart); cout <<tall1<<" "<<regneart<<" "<<tall2; cout << "="<<svar<<endl; cin.ignor cin.get }//slutt main // //------------------------------------------------------------------------------ //funksjonen beregnsvar // double beregnsvar( double tall1, //inn double tall, //inn char rgneart) //inn { int svar; switch (svar) { case '+': svar = tall1+tall2; break; case '-': svar = tall1-tall2; break; case '*': svar = tall1*tall2; break; case '/': svar = tall1/tall2; break; } //slutt funskjon beregnsvar Endret 14. april 2004 av Fredrik90 Lenke til kommentar
søppel Skrevet 14. april 2004 Del Skrevet 14. april 2004 "The selective Structure: switch.": http://www.cplusplus.com/doc/tutorial/tut2-1.html http://www.cppreference.com/keywords_details.html#switch http://www.intap.net/~drw/cpp/cpp04_02.htm o.s.v. ... http://directory.google.com/Top/Computers/..._and_Tutorials/ Lenke til kommentar
Dead_Rabbit Skrevet 14. april 2004 Del Skrevet 14. april 2004 oops, ville kansje vært en fordel å bruke switch(regneart) isteden ja Lenke til kommentar
Fredrik90 Skrevet 14. april 2004 Forfatter Del Skrevet 14. april 2004 (endret) ok her er mitt problem.ser noen en feil her. cout <<"skriv regnestykket"; kompilatoren min sier at det er noe feil her.jeg bruker "dev-c++"version 4.9.8.7 og vis noen lurer på hele koden er den her. #include <iostream> #include <stdlib.h> using namespace std; int beregnsvar(double tall1,double tall2,char regneart); int main(int argc, char *argv[]) { double tall1; double tall2; char regneart; double svar cout <<"skriv regnestykket"; cin >>tall1>>regneart>>tall2 double svar=beregnsvar(tall1,tall2,regneart); cout <<tall1<<" "<<regneart<<" "<<tall2; cout << "="<<svar<<endl; cin.ignor cin.get }//slutt main // //------------------------------------------------------------------------------ //funksjonen beregnsvar // double beregnsvar( double tall1, //inn double tall2, //inn char rgneart) //inn { int svar; switch (regneart) { case '+': svar = tall1+tall2; break; case '-': svar = tall1-tall2; break; case '*': svar = tall1*tall2; break; case '/': svar = tall1/tall2; break; } //slutt funskjon beregnsvar Endret 14. april 2004 av Fredrik90 Lenke til kommentar
Dead_Rabbit Skrevet 14. april 2004 Del Skrevet 14. april 2004 (endret) Ser ut som du har glemt et semikolon EDIT: På linja foran den som du viste kompilatoren viste error på. Endret 14. april 2004 av zirener Lenke til kommentar
☀ ❄ Skrevet 14. april 2004 Del Skrevet 14. april 2004 Da har du lært (det var en ordre, ikke en anmodning ) at når du har glemt et semikolon får du ofte feilmelding fra linja ovenfor (den som mangler semikolon). Du har dessuten lært at du har en tendens til å ha syntaksfeil, så du bør ta en titt etter det før du spør. Slike feil bør du dessuten egentlig klare å rette opp i selv. Jeg trodde dessuten de fleste kompilatorer var smarte nok til å si ifra ganske klart om mangel på semikolon? Lenke til kommentar
Fredrik90 Skrevet 14. april 2004 Forfatter Del Skrevet 14. april 2004 (endret) ok fiksa det nå er det en ny feil.den gir bare ikkem mening lengre før lagde jeg programer uten noe kluss og nå er det veldig mye. double svar=beregnsvar(tall1,tall2,regneart); den sier det er feil her. ok problem løst jeg og Myubi posta svar samtitig. Endret 16. april 2004 av Fredrik90 Lenke til kommentar
Fredrik90 Skrevet 16. april 2004 Forfatter Del Skrevet 16. april 2004 som sagt,nå har jeg en feil igjen. kan noen si hva som er feil her #include <iostream> #include <cstdlib> using namespace std; int beregnsvar(int tall1,int tall2,char regneart); int main(int argc, char *argv[]) { int tall1; int tall2; char regneart; int svar; cout <<"skriv regnestykket"; cin >>tall1>>regneart>>tall2; svar=beregnsvar(tall1,tall2,regneart); cout <<tall1<<" "<<regneart<<" "<<tall2; cout << "="<<svar<<endl; cin.ignore(); cin.get(); } // //------------------------------------------------------------------------------ //funksjonen beregnsvar // int beregnsvar(int tall1,int tall2,char regneart); switch(regneart) { /* ... */ }//den sier:parse error before `switch' { case '+': svar = tall1+tall2; break; case '-': svar = tall1-tall2; break; case '*': svar = tall1*tall2; break; case '/': svar = tall1/tall2; break; return svar }//slutt funskjon beregnsvar Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå