Snipershot Skrevet 16. mai 2007 Del Skrevet 16. mai 2007 // this program determines whether a person has exceeded their credit limit or not // by #include <iostream> using std::cout; using std::cin; using std::endl; using std::fixed; #include <iomanip> using std::setprecision; int main() { int accountNumber; double beginningBalance; double totalCharges; double totalCredits; double creditLimit; double newBalance; cout << "Enter account number (-1 to end): "; cin >> accountNumber; while ( accountNumber != -1 ){ cout << "Enter beginning balance: "; cin >> beginningBalance; cout << "Enter total charges: "; cin >> totalCharges; cout << "Enter total credits: "; cin >> totalCredits; cout << "Enter credit limit: "; cin >> creditLimit; newBalance = beginningBalance + totalCredits; if ( newBalance > creditLimit ) { cout << "Account: " << accountNumber << endl; cout << "Credit limit: " << creditLimit << endl; cout << "Balance: " << newBalance << endl; cout << "Credit limit exceeded" << endl; cout << "\nEnter account number (-1 to end) : "; cin >> accountNumber; } else { cout << "\nEnter account number (-1 to end) : "; cin >> accountNumber; } } cout << "\nProgram terminated."; system("pause"); return 0; } dette burde være rett om C++ behandler if setninger på samme måte om Java. Og hvis jeg anntar at programmet ditt ikke avslutter men bare venter på input fra else cout << "\nEnter account number (-1 to end) : "; cin >> accountNumber; Siden cout blir regnet som en del if setningen mens cin blir kjørt uansett som en del av loopen. Lenke til kommentar
Frysning Skrevet 19. mai 2007 Del Skrevet 19. mai 2007 GUI med C og GTK virker helt kurrant, men kan jeg bruke C++ og GTK? Bruker jeg C får jeg følelsen av å ikke dra så mye nytte av det, læreboken jeg følger er trossalt C++. Alt av eksempler er jo med C på gtk sine nettsider, så hvordan kan jeg egentlig compile dette under C++? Lenke til kommentar
Dead_Rabbit Skrevet 19. mai 2007 Del Skrevet 19. mai 2007 Ja. C biblioteker funker jo "native" med C++. Men jeg hadde villet tatt en titt på GTKmm hvis jeg var deg. Det er enkelt og greit og objektorientert. Lenke til kommentar
Frysning Skrevet 20. mai 2007 Del Skrevet 20. mai 2007 Hjertlig. Det jeg har oppdaget når det kommer til data, det er best å spørre. For som oftest er det allerede en "løsning"/svar på det jeg lurer på, ganske lett/åpenbart. Det jeg lurer på har sikkert andre lurt på også.... Lenke til kommentar
Landeplagen Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 Hvorfor kan jeg ikke returne en string in funksjonen get_calc_type her? (Fjernet en del kode) #include <iostream>#include <string> #include <cstdlib> using namespace std; int get_calc_type(int a) { string b; if (a == 1) { b = "+"; } if (a == 2) { b = "-"; } return (b); } Lenke til kommentar
Jaffe Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 (endret) Hvorfor kan jeg ikke returne en string in funksjonen get_calc_type her?(Fjernet en del kode) #include <iostream>#include <string> #include <cstdlib> using namespace std; int get_calc_type(int a) { string b; if (a == 1) { b = "+"; } if (a == 2) { b = "-"; } return (b); } 8786097[/snapback] EDIT: Fjerna det dårlige eksempelet og legger i stedet til denne forklaringen: Du må definere funksjonen til å returnere string og ikke int slik den nå gjør. Endret 5. juni 2007 av Jaffe Lenke til kommentar
Landeplagen Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 (endret) Og jeg vet heller ikke om det er mulig å bruke char som returtype med resten av koden din, men da må du uansett huske å endre returtypen til string. 8786233[/snapback] Du mener å gjøre om til string der funksjonen brukes, eller? Edit: Det returnerer ASCII koden ja - hvordan gjør jeg det om til string? Endret 5. juni 2007 av MartinLande Lenke til kommentar
Jaffe Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 Og jeg vet heller ikke om det er mulig å bruke char som returtype med resten av koden din, men da må du uansett huske å endre returtypen til string. 8786233[/snapback] Du mener å gjøre om til string der funksjonen brukes, eller? Edit: Det returnerer ASCII koden ja - hvordan gjør jeg det om til string? 8786307[/snapback] Den opprinnelige funksjon din kan ikke returnere en string fordi den er definert til å returnere int. CODE string get_calc_type(int a) { string b; if (a == 1) b = "+"; if (a == 2) b = "-"; return b; } Slik blir da funksjonen din. Glem det jeg sa om char over. Lenke til kommentar
Landeplagen Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 Slik blir da funksjonen din. Glem det jeg sa om char over. 8786504[/snapback] Do'h. Takk. Lenke til kommentar
Landeplagen Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 (endret) Kan noen linke til en liste over hva de forskjellige header og namespace filene inneholder, og hvilke funksjoner de har? Har lett på google. Endret 5. juni 2007 av MartinLande Lenke til kommentar
Jaffe Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 (endret) Kan noen linke til en liste over hva de forskjellige #include og namespace filene inneholder, og hvilke funksjoner de har?Har lett på google. 8787795[/snapback] Namespace har ingenting med #include eller filer å gjøre, et namespace er et "område" der et navn på noe er gjeldende. Man kan ha flere forskjellige namespaces der det kan være definert en funksjon eller variabel med samme navn i hvert namespace, uten at det oppstår en konflikt. Når man referer til noe i et namespace bruker man navnet på namespacet etterfulgt av :: og så det man refererer til: std::cout << "Heisann\n"; Det nøkkelordet using namespace gjør er å si at "fra nå av er xxxx standardnamespace, så dersom det ikke eksplisitt blir oppgitt et namespace, antas xxxx å være namespacet." Da slipper man å oppgi namespacet foran, så det er derfor using namespace fører til at f.eks. cout kan skrives uten. (Kom gjerne med en bedre forklaring en eller annen) Når det gjelder "#include-filer" antar jeg du mener standardbiblioteket til C++ (og evt. også C). Du finner en oversikt her: http://www.cplusplus.com/reference/ . I menyen til venstre velger du biblioteket du vil se info om (hvilke filer du må inkludere og hvilke funksjoner de har). Endret 5. juni 2007 av Jaffe Lenke til kommentar
Dead_Rabbit Skrevet 5. juni 2007 Del Skrevet 5. juni 2007 http://www.cppreference.com Denne synes jeg er veldig grei. Det finnes ikke noe slikt som et standard namespace, men using deklarasjonene gjør hele eller deler av namespacet globalt. using namespace std; using std::cout; Lenke til kommentar
Arne Skrevet 22. juli 2007 Del Skrevet 22. juli 2007 (endret) Eg lurar på ein ting; korleis kan eg lese input kontinuerleg, dvs. at om ein tastar inn t.d 9, så skjer det ein ting, utan at ein må trykke enter? No må ein gjere det slik: int number = 0; cin >> number; if (number == 9) { funksjon(); } Eg kunne tenkje meg at ein slapp å trykke enter, at funksjon() vart utløyst når ein trykkjer på 9. Endret 23. juli 2007 av Arne Lenke til kommentar
Jaffe Skrevet 23. juli 2007 Del Skrevet 23. juli 2007 Eg lurar på ein ting; korleis kan eg lese input kontinuerleg, dvs. at om ein tastar inn t.d 9, så skjer det ein ting, utan at ein må trykke enter? No må ein gjere det slik: int number = 0; cin >> number; if (number = 9) { funksjon(); } Eg kunne tenkje meg at ein slapp å trykke enter, at funksjon() vart utløyst når ein trykkjer på 9. 9122248[/snapback] Du kan bruke C-funksjonen getchar til dette. Da må du huske å inkludere cstdio. Forresten, (dette er kanskje en skrivefeil fra din side) du kan ikke bruke tilordningsoperatøren (=) til å sammenligne ting. Du må bruke ==. Frysning: Hvilket API snakker du om? Det er jo lov å være litt mer spesifikk ... Lenke til kommentar
Glutar Skrevet 23. juli 2007 Del Skrevet 23. juli 2007 (endret) Hei Lurer på hvordan jeg kan få en løkke til å gå helt til du trykker inn en bokstav. while (on != 0) { cin >> on; funksjon(); } Her vil den jo stoppe å vente på ett tastetrykk før den fortsetter. Lurer da på en måte løkka fortsetter å gå helt til noen trykker på noe. takker for svar Endret 23. juli 2007 av Glutar Lenke til kommentar
Arne Skrevet 23. juli 2007 Del Skrevet 23. juli 2007 Takk, Jaffe, eg skal sjå på det der! Ja, det var den vanlege skrivefeilen... -_- Lenke til kommentar
Arne Skrevet 23. juli 2007 Del Skrevet 23. juli 2007 Eg lurar på to nye ting som eg håpar at nokon kan gi meg eit nokolunde fornufteg svar på. 1: Eg har ikkje forstått dette med pointers heilt. Vil denne koden... int x, *y; y = &x ...vere det same som: 1: Eg lagar ein integer-variabel med namnet x, og eg lagar ein int-pointer med namnet y! 2: y skal ha akkurat den same verdien som x! Vil dette seie at ein pointer er det same som ein slags referanse-nøkkel? Som gir y beskjed at verdien hans til ein kvar tid skal vere den same som x? Hadde vore fint med ein oppklaring her. 2: Kva skal ein bruke? \n eller endl? Lenke til kommentar
Giddion Skrevet 23. juli 2007 Del Skrevet 23. juli 2007 Eg lurar på to nye ting som eg håpar at nokon kan gi meg eit nokolunde fornufteg svar på. 1: Eg har ikkje forstått dette med pointers heilt. Vil denne koden... int x, *y; y = &x ...vere det same som: 1: Eg lagar ein integer-variabel med namnet x, og eg lagar ein int-pointer med namnet y! 2: y skal ha akkurat den same verdien som x! 9129964[/snapback] vel, x og y er ikke to tall men et tall og en peker så de vil ikke kunne ha samme verdi. Kan en bil og et eple ha like mange hestekrefter? (vel ja 0, men ikke tenk på det ) Det er mange måter å prøve å forstå pekere. Pekere er et tall som int det er som regel 32bit (32bit prosessorer) men kan også ha andre størrelser. Verdien som pekeren har angir hvor i minnet den typen befinner seg. En int peker med verdi 100 betyr at den henviser til en int som starter ved byte 100 i minnet I linje 1 i koden du laget blir x deklarert som int og y som en peker til en int. I linje 2 sier du at y skal peke til det stedet i minne der x befinner seg. Etter linje 2 vil følgende alltid være sann så lenge du ikke gjøre noe med y. x==*y Vil dette seie at ein pointer er det same som ein slags referanse-nøkkel? Som gir y beskjed at verdien hans til ein kvar tid skal vere den same som x? Hadde vore fint med ein oppklaring her. 9129964[/snapback] En peker sier hvor verdien befinner seg så dataen leser egentlig samme verdi. f. eks. Olav vil sammenligne bilen sin med Per og ber Kari være dommer Olav kommer kjørende med bilen sin til Kari, men Per sier at bilen befinner seg samme sted som Olav sin Så bilen er den samme og alle er glade.. untatt Olav 2: Kva skal ein bruke? \n eller endl? 9129964[/snapback] Jeg ville brukt \n i C og endl i c++ sine funksjoner. Linker til sider som sikkert forklarer pointere bedre enn meg Pointers: Beginning to Intermediate How Pointers Really Work håper det hjalp Lenke til kommentar
Arne Skrevet 23. juli 2007 Del Skrevet 23. juli 2007 Endeleg kom proff-hjelp! Stakkars Olav, han har jo ikkje bil lengre! Fin forklaring! Skal sjå litt meir på det! 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å