Gå til innhold

Kodesnutter for ferskinger


Anbefalte innlegg

Det finnes 3 standard FILE *streams i C, disse er STDIN(0), STDOUT(1) og STDERR(2).

 

cin leser default fra STDIN(0), cout skriver default til STDOUT(1) og cerr skriver default til STDERR(2).

 

Tallene i parentes representer fil-deskriptorene som operativsystemet bruker og C arver(tror ikke disse er definert i C, mulig jeg tar feil der).

 

Jalemo

Lenke til kommentar
  • 2 måneder senere...
Videoannonse
Annonse
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?

Kan ikke svare deg på alt men... ;)

 

"Kan vi gjøre sånn at vi slipper starte programmet på nytt for å gjøre en ny utregning?"

 

Der er det vel bare å bruke en while eller dowhile løkke?

 

"Eller at vi f.eks. kan taste "tallbruk" for å få en oversikt over hvilke tall som var med i utregningen?"

 

Kansje ikke dette du er ute etter, men man kan jo bare lisom gjøre sånn da:

 

#include <iostream.h>

main()

{

//utregning og alt det der

cout << " Disse var med i utregningen " << Tall1 << Tall2 << Tall3 osv

 

Er ikke sikker på om jeg har forstått deg riktig men... :p

Lenke til kommentar

I C++ er det fire standard filstrømmer:

 

1) cin

2) cout

3) cerr

4) clog

 

Altså, input, output, error output og log-output. Sistnevnte fungerer som vanlig cout, med mindre noe annet er spesifisert (kan altså, hvis jeg ikke tar feil, brukes til å implementere loggføring).

 

Eneste forskjellen på cout og cerr er operator<<() for sistnevnte kaller flush() -- altså, skriver bufferen til skjermen.

 

Bruk av std::cerr for å slippe å flush'e std::cout er latskap, lite tydelig, dårlig "programming practise" og kan føre til bugs. Det gjør dessuten at output tar mye lenger tid hvis mye blir skrevet til skjermen. (Det tar like mye lenger tid uansett hvor mye som blir skrevet til skjermen, men det er mest merkbart hvis det er mye).

Lenke til kommentar

cout skriver til standard ut (tilsvarer filen stdout i C), cerr skriver til stanrdard error (stderr i C), mens clog er en bufret utgave av cerr (med logging har umiddelbar output liten betydning). Standard error og standard ut oppfører seg likt, bortsett fra at de kan skilles, f.eks i shell. Det er ofte en fordel å rette de to mot ulike filer, f.eks kan man rette standard error mot en loggfil (kommando 2> loggfil), hvis man skulle ønske en oversikt over feil.

 

Edit: Så jalemos innlegg som sier stort sett det samme, dette bør være relativt klart?

Endret av A_N_K
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...