Damp Skrevet 3. april 2007 Del Skrevet 3. april 2007 (endret) Hjelp, resultat vises ikke Det bare kommer et flash og vinduet forsvinner, kan tenke meg jeg har gjort noe galt siden jeg er helt ny til C++. Jeg følger en bok. #include <iostream> int main() { int number1; int number2; int sum; std::cout << "Skriv inn et tall: "; std::cin >> number1; std::cout << "Skriv inn et nytt tall: "; std::cin >> number2; sum = number1 * number2; std::cout << "Sum: " << sum << std::endl; system("pause"); return 0; } Endret 3. april 2007 av pcbygger91 Lenke til kommentar
jurg Skrevet 3. april 2007 Del Skrevet 3. april 2007 (endret) Fra denne tråden: 6. Når jeg kjører programmet kommer det en svart boks på skjermen i et lite sekund, og det skjer ikke noe mer. Hva er galt?Når programmet er ferdig med å kjøre, med andre ord nesten med én gang, lukker det seg igjen (programmet returnerer). Problemet er at terminalen/konsollet programmet kjører i også lukkes igjen når programmet er ferdig. Det er flere måter å løse dette på: - Kjør programmet direkte fra en terminal, fremfor å dobbeltklikke på ikonet. Da vil ikke terminalen lukke seg igjen etterpå. - Sørg for at programmet venter på inndata før det lukker seg igjen. Du kan lese i denne tråden for en ekstensiv diskusjon om hva man kan gjøre og hva man bør gjøre. Edit: Bare sleng inn kode for å lese et tall, evt system("pause"); rett før return 0; Endret 3. april 2007 av jurg Lenke til kommentar
Damp Skrevet 3. april 2007 Forfatter Del Skrevet 3. april 2007 (endret) Takk jurg! Det løste problemet. Merkelig at noe slik ikke ikke stod forklart i boken. Edit: Nytt spørsmål. Hvordan kan jeg lage valg så jeg kan bestemme om jeg vil dele/gange/multiplisere osv? Endret 3. april 2007 av pcbygger91 Lenke til kommentar
Mondain Skrevet 3. april 2007 Del Skrevet 3. april 2007 Takk jurg! Det løste problemet. Merkelig at noe slik ikke ikke stod forklart i boken. Edit: Nytt spørsmål. Hvordan kan jeg lage valg så jeg kan bestemme om jeg vil dele/gange/multiplisere osv? 8301289[/snapback] Tja, du kan jo bruke en switch med + / - * som caser. Lenke til kommentar
Damp Skrevet 3. april 2007 Forfatter Del Skrevet 3. april 2007 Takk jurg! Det løste problemet. Merkelig at noe slik ikke ikke stod forklart i boken. Edit: Nytt spørsmål. Hvordan kan jeg lage valg så jeg kan bestemme om jeg vil dele/gange/multiplisere osv? 8301289[/snapback] Tja, du kan jo bruke en switch med + / - * som caser. 8302568[/snapback] Har du et eksempel? Lenke til kommentar
Dead_Rabbit Skrevet 3. april 2007 Del Skrevet 3. april 2007 Les inn verdi til en char-variabel, også gjør du switchen slik: char valg; // .... switch(valg) { case '+': svar = number1 + number2; break; case '-': svar = number1 - number2; break; case '*': svar = number1 * number2; break; case '/': svar = number1 / number2; break; default: std::cout << "Error blablabla\n"; } Lenke til kommentar
Damp Skrevet 3. april 2007 Forfatter Del Skrevet 3. april 2007 (endret) Takk staalezh! Edit: #include <iostream> int main() { int nr1; int nr2; int svar; std::cout << "\nVelkommen.\n"; std::cout << "\nAngi tall 1: "; std::cin >> nr1; std::cout << "\nSkriv inn tall 2: "; std::cin >> nr2; char valg; switch(valg) { case '+': svar = nr1 + nr2; break; case '-': svar = nr1 - nr2; break; case '*': svar = nr1 * nr2; break; case '/': svar = nr1 / nr2; break; default: std::cout << "Error\n"; } std::cout "\nHva vil du gjøre: "; std::cin >> valg; std::cout << "= " << svar << std::endl; system("Pause"); return 0; } syntax error : missing ';' before 'string' Jeg prøvde meg frem men jeg fikk en error jeg ikke skjønte hvorfor jeg fikk, hva har jeg gjort galt? Endret 4. april 2007 av pcbygger91 Lenke til kommentar
Quijote Skrevet 4. april 2007 Del Skrevet 4. april 2007 Har du sjekket om du mangler ein ';' noe sted? Dersom du poster linje-nummeret hvor feilen oppstod, så hjelper det. Uansett så trur eg du må flytte switch-caset ditt lengre ned, til etter at du har hentet verdien til "valg"-variabelen din. Koden kjøres jo fra topp til bunn, og valg-variabelen din vil da vere udefinert når switch-caset kjøres. Prøv det, og se om det hjelper. Lenke til kommentar
Dead_Rabbit Skrevet 5. april 2007 Del Skrevet 5. april 2007 Det fikser ikke kompileringsfeilen. Hvis du derimot husker å kalle operator<< ("<<" mellom std::cout og "\nHva vil du gjøre?"), burde det gjøre susen. Forøvrig vil du - som Quijote også nevner - få merkelige resultater hvis du ikke leser inn input til valg før switch-setningen. Lenke til kommentar
Damp Skrevet 5. april 2007 Forfatter Del Skrevet 5. april 2007 (endret) Hvis du derimot husker å kalle operator<< ("<<" mellom std::cout og "\nHva vil du gjøre?"), burde det gjøre susen. At jeg ikke så den feilen :!: #include <iostream> int main() { system("title Kalkulator v0.1"); int nr1; int nr2; int svar; std::cout << "\nVelkommen.\n"; std::cout << "\nAngi tall 1: "; std::cin >> nr1; std::cout << "\nSkriv inn tall 2: "; std::cin >> nr2; char valg; std::cout << "\nHer kan du velge om du vil: "; std::cout << "\nMultiplisere, *. Dividere, /. Substrahere, -. Addere, +."; std::cout << "\nHva vil du gjore?: "; std::cin >> valg; switch(valg) { case '+': svar = nr1 + nr2; break; case '-': svar = nr1 - nr2; break; case '*': svar = nr1 * nr2; break; case '/': svar = nr1 / nr2; break; default: std::cout << "\nError.\n"; } std::cout << "= " << svar << std::endl; system("Pause"); return 0; } Endret 5. april 2007 av pcbygger91 Lenke til kommentar
Mondain Skrevet 5. april 2007 Del Skrevet 5. april 2007 Neste utfordring nå kan jo være at du skriver inn alt på en linje, og får et svar med engang. Litt tungvindt det du har nå Altså, input vil bare være: 2 + 2 Output: = 4. Lenke til kommentar
Damp Skrevet 5. april 2007 Forfatter Del Skrevet 5. april 2007 Hvordan kan jeg få alt på en linje? Gi meg et hint, så lærer jeg mer Lenke til kommentar
Mondain Skrevet 5. april 2007 Del Skrevet 5. april 2007 Du kan feks. lese inn sånn før switchen: cin >> tall1 >> valg >> tall2; Mens du driver på kan du jo også legge inn en if-sjekk på at man ikke kan dele på null. Og hva med å gjøre programmet litt mer robust ved å sikre at man ikke kan lese inn noe annet enn tall der det skal være tall? Mye morsomt man kan gjøre Lenke til kommentar
Damp Skrevet 6. april 2007 Forfatter Del Skrevet 6. april 2007 (endret) Skal se på det i morgen! Edit: #include <iostream> int main() { system("title Kalkulator v0.2"); //Tittel system("Color 0A"); //Tekst farge int nr1; int nr2; int svar; char valg; std::cout << "\n >: "; std::cin >> nr1 >> valg >> nr2; switch(valg) { case '+': svar = nr1 + nr2; break; case '-': svar = nr1 - nr2; break; case '*': svar = nr1 * nr2; break; case '/': svar = nr1 / nr2; break; default: std::cout << "Error"; } system("Cls"); //Tøm skjermen std::cout << "\n"; std::cout << " >: " << nr1 << " " << valg << " " << nr2 << " = " << svar << std::endl; std::cout << "\n"; system("Pause"); //Pause return 0; } Da var den oppdatert, men har en del andre spørsmål. * Hvordan jeg kan jeg få til en såkalt "if" i c++? * Er det også mulig å få programmet til å vente i et par sekunder og dermed gå videre? * Går det an å starte fra begynnelsen av i koden og ta et nytt stykke ved hjelp av en "if" f.eks. "vil du ta et nytt stykke? (ja/nei)" ? * Hvordan kan jeg få desimaler i svaret? Endret 7. april 2007 av pcbygger91 Lenke til kommentar
Mondain Skrevet 7. april 2007 Del Skrevet 7. april 2007 If-sjekk så man ikke kan dele på null: case '/': if (nr2 != 0) svar = nr1 / nr2; else cout << "Du kan ikke dele paa null!\n"; Hvis du vil ha desimaltall kan du bruke float'er istedet for int'er. Spørsmålet om å "vente" noen sekunder skjønte jeg ikke. Hvis du vil ha muligheten for å taste inn flere ganger kan du feks. sette opp en do while loop. google it Lenke til kommentar
Dead_Rabbit Skrevet 7. april 2007 Del Skrevet 7. april 2007 Jeg tror du burde ta en ting om gangen. Hvis du leser en bok (noe du burde), så følg den. Da lærer du ting når du burde lære det, og ikke minst på en god måte, og ofte i en sammenheng også. Lenke til kommentar
Damp Skrevet 7. april 2007 Forfatter Del Skrevet 7. april 2007 (endret) Har gjort det til nå, det er en bra måte å jobbe på. Forresten, takk Mondain. Ligner litt på hvordan man gjør det i batch, noe som jeg drev med før C++. Edit: Hvordan kan man få desimaler i svaret? Endret 7. april 2007 av pcbygger91 Lenke til kommentar
TufsaXX Skrevet 8. april 2007 Del Skrevet 8. april 2007 Har gjort det til nå, det er en bra måte å jobbe på.Forresten, takk Mondain. Ligner litt på hvordan man gjør det i batch, noe som jeg drev med før C++. Edit: Hvordan kan man få desimaler i svaret? 8329536[/snapback] Hei, vil sterkt anbefale boken Accelerated C++ av Koenig og Moo. Den tar for seg alt det meste grunnleggende. Lenke til kommentar
Damp Skrevet 8. april 2007 Forfatter Del Skrevet 8. april 2007 Har gjort det til nå, det er en bra måte å jobbe på.Forresten, takk Mondain. Ligner litt på hvordan man gjør det i batch, noe som jeg drev med før C++. Edit: Hvordan kan man få desimaler i svaret? 8329536[/snapback] Hei, vil sterkt anbefale boken Accelerated C++ av Koenig og Moo. Den tar for seg alt det meste grunnleggende. 8331875[/snapback] Takk, skal se på det! Lenke til kommentar
Dead_Rabbit Skrevet 8. april 2007 Del Skrevet 8. april 2007 Har gjort det til nå, det er en bra måte å jobbe på.Forresten, takk Mondain. Ligner litt på hvordan man gjør det i batch, noe som jeg drev med før C++. Edit: Hvordan kan man få desimaler i svaret? 8329536[/snapback] Hvilken bok leser du nå da? Saken er den at hvis du leser en bok, så lærer du ting som kontroll-setninger og datastrukturer (hvordan du får desimaler i svaret skjønner du f.eks. hvis du kan datastrukturer) . Dette er et sted for diskusjon rundt språket og evt. konkrete spørsmål rundt problemer o.l. -- ikke en opplæringssentral. Derfor vil du få bedre utbytte av å gjøre ting i "rekkefølge", altså "by the book". Klart det er jo lov å spørre, men når du får svar på disse spørsmålene, vil du lure på mer, osv., osv. 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å