Stroyer Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Ser litt etter noen kodesnutter for ferskinger. Har erfart fra andre situasjoner at se og lær ofte er det beste. Noen som har noen linker, eller kanskje noe å komme med her? Lurer forresten på om noen ganske enkelt kan fortelle meg hvordan det fungerer med variabler og IFer. Altså, hvis en person f.eks. taster inn "b" og trykker enter, så kommer tekst B opp. Skjønner? Lenke til kommentar
abcd423417984 Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 les faq'en til daysleper. Lenke til kommentar
Stroyer Skrevet 2. desember 2003 Forfatter Del Skrevet 2. desember 2003 Tusen takk! Der var det masse Tar fremdeles imot veileding om IFing. Lenke til kommentar
daysleper Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Tatt fra en gammel tutorial jeg begynnte på for litt siden, på ingen måte komplett. Etter "if'ing", kommer du til å lure på andre ting; så til slutt er det like greit at du skaffer deg en god bok. Uansett: if handler om boolske verdier; true eller false. true <> 0; // alle verdier forskjellig fra 0false == 0; if(1 == 1) do_stuff(); // denne vil kjøres her siden 1 == 1 returnerer 'true'. else do_some_other_stuff(); // denne kjøres ikke --- if(1 == 0) do_stuff(); // denne kjøres ikke else do_some_other_stuff(); // denne vil "kjøres" her siden 1 == 0 returnerer 'false'. if kan brukes slik: if(1 > 0) do_stuff(); // denne kjøres do_other_stuff(); // denne kjøres også -- if(1 > 0) do_stuff(); // denne kjøres else do_other_stuff(); // denne kjøres ikke -- if('a' != 'b') { do_stuff(); // disse.. do_more_stuff(); // ..kjøres ikke } do_other stuff(); // denne kjøres -- if(0) do_stuff(); else do_other_stuff(); // denne kjøres -- int i = 3; if(i == 1) { do_stuff(); do_more_stuff(); } else if(i == 2) { do_something(); } else if(i > 2) { do_something_else(); // denne kjøres } Som du ser, brukes { og } for å gruppere ting og er unødvendig når det bare er en instruksjon som skal utføres. Eksempel: #include <iostream> using namespace std; int main() { int tall1; int tall2; string operasjon; cerr << "Skriv inn det første tallet : "; cin >> tall1; cerr << "Skriv inn det andre tallet : "; cin >> tall2; cerr << "Hva vil du gjøre med " << tall1 << " og " << tall2 << " (+, -, * eller /)? : "; cin >> operasjon; if(operasjon == "+") cerr << "Summen av " << tall1 << " og " << tall2 << " er: " << tall1 + tall2 << endl; else if(operasjon == "-") cerr << "Differansen mellom " << tall2 << " og " << tall1 << " er: " << tall2 - tall1 << endl; else if(operasjon == "*") cerr << "Produktet av " << tall1 << " og " << tall2 << " er: " << tall1 * tall2 << endl; else if(operasjon == "/") cerr << tall1 << " delt på " << tall2 << " er: " << static_cast<double>(tall1) / static_cast<double>(tall2) << endl; else cerr << "Du skrev inn en ukjennt operasjon, prøv igjen!" << endl; return(0); } Lenke til kommentar
Stroyer Skrevet 2. desember 2003 Forfatter Del Skrevet 2. desember 2003 (endret) Etter "if'ing", kommer du til å lure på andre ting Liker ikke sånne folk som leser tankene mine En god bok kan jeg jo kanskje ønske meg til jul? ...men innen den tid får dere nok høre mer gnåling fra meg. Nei, jeg skal prøve å se litt på andre koder og lære av dem, og heller plage dere hvis det er noe jeg absolutt ikke forstår Nå har jeg i alle fall noe å pusle med en stund... Endret 2. desember 2003 av Stroyer Lenke til kommentar
abcd423417984 Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Er bare å spørre det Stroyer, men prøv gjerne å søk litt først og les gjennom faq'en vår. Lenke til kommentar
jorgis Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Daysleeper: hva er cerr? Ligner på cout, men hva nøyaktig er det? Lenke til kommentar
Zethyr Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 det er det samme som cout, helt riktig, men om jeg husker riktig så 'flusher' det bufferen med en gang eller noe slikt. i hvertfall noe som gjør at det fungerer i 101% av tilfellene i stedet for 100% som cout fungerer... På vanlige console applications er det greit å bruke cerr Lenke til kommentar
jewel Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Og du kan bytte ut if() med switch().. Mye lettere og holde orden på Lenke til kommentar
moesen Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 Daysleeper: hva er cerr? Ligner på cout, men hva nøyaktig er det? Cerr er på en måte det samme som Cout. Men cerr brukes mer til error/feilmelidinger. Jeg mente at cerr bare sender text til skjermen, mens cout kan liksom "renge" ut ting o.s.v. ikke bare sende text... Jeg vet ikke om det stemmer men jeg tror det Lenke til kommentar
daysleper Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 moesen: ..er nok ikke riktig, det Zethyr sier stemmer mer. Lenke til kommentar
A_N_K Skrevet 2. desember 2003 Del Skrevet 2. desember 2003 cerr skriver til standard error, mens cout skriver til standard ut. Dette gjør at du kan skille feilmeldinger fra vanlig output. Vet ikke om dette funker i cmd.exe (sannsynligvis), men i bash: mitt_program 2> error_log Her omdirigeres standard error til filen error_log, mens standard ut ennå vises på skjermen. Lenke til kommentar
daysleper Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 ..og hvis vi kombinerer det Zethyr sier og det A_N_K sier stemmer det ennå mer. Lenke til kommentar
EC Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 Dårlig bruk av emnefeltet, tråden stenges. Lenke til kommentar
daysleper Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 Tok å endret emnefeltet jeg da .. Bortkastet å måtte opprette ennå en ny tråd og referere til denne hvis noen ville diskutere videre IMHO. Lenke til kommentar
Stroyer Skrevet 3. desember 2003 Forfatter Del Skrevet 3. desember 2003 Jeg burde altså heller bruke cout << enn cerr << fordi cerr oppfattes av systemet som en feilmelding? Er det forresten mulig å ha flere kommandoer (eller hva jeg nå skal kalle det) i en IF? Sett at vi går ut fra dayslepers kalkuleringseksempel. Kan vi gjøre sånn at vi slipper starte programmet på nytt for å gjøre en ny utregning? Eller at vi f.eks. kan taste "tallbruk" for å få en oversikt over hvilke tall som var med i utregningen? Lenke til kommentar
A_N_K Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 Systemet tar ikke på noen måte stilling til om det du skriver til de standard filene (standard ut/error) er feilmelding eller ikke, det er bare en konvensjon for å skille mellom typer av output. Kan være praktisk å dirigere feilmeldinger til en logg f.eks, eller man er kanskje bare interessert i feilmeldinger. Lenke til kommentar
pertm Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 Stroyer det er mulig å ha flere komandoer i en if, men da må en ha det i en parantes. if(1)//alltid true { //Alt inn i her kjøres <kode> } else { <kode> } I dette eksemplet over vil koden bli kjørt hvis ifsettnigen blir kjørt if(1) i++;//kjøres i if settning i--;//kjøres alltid else //gir feilmelding <noe kode> Uten parantes kjøres bare den første settningen og det blir en else uten if hvis det er mer en en linje mellom. Lenke til kommentar
gspr Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 Daysleeper: hva er cerr? Ligner på cout, men hva nøyaktig er det? Cerr er på en måte det samme som Cout. Men cerr brukes mer til error/feilmelidinger. Jeg mente at cerr bare sender text til skjermen, mens cout kan liksom "renge" ut ting o.s.v. ikke bare sende text... Jeg vet ikke om det stemmer men jeg tror det cerr er vel mer som perror() i C? Lenke til kommentar
A_N_K Skrevet 3. desember 2003 Del Skrevet 3. desember 2003 Daysleeper: hva er cerr? Ligner på cout, men hva nøyaktig er det? Cerr er på en måte det samme som Cout. Men cerr brukes mer til error/feilmelidinger. Jeg mente at cerr bare sender text til skjermen, mens cout kan liksom "renge" ut ting o.s.v. ikke bare sende text... Jeg vet ikke om det stemmer men jeg tror det cerr er vel mer som perror() i C? Mer som fprintf(stderr, ...) vel. 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å