Tinpro015b-les5 Invoer en Uitvoer.

Slides:



Advertisements
Verwante presentaties
Inleiding programmeren in C++ Life Science & Technology 26 januari Universiteit Leiden.
Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.

Universiteit Leiden Inleiding programmeren in C++ Life Science & Technology 16 februari
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Operatoren, Arrays, Command-line tools.

Inleiding programmeren in C++ Life Science & Technology 23 februari Universiteit Leiden.
Arduino project.
EVMINX4 Week 3 Algoritmen en Datastructuren (ALDAT)
Gestructureerd programmeren in C
Inleiding programmeren in C++ Life Science & Technology 19 januari Universiteit Leiden.
PROS2 Les 11 Programmeren en Software Engineering 2.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Conditionele expressie

Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
Hoofdstuk 5: Bestanden.
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
Numerieke Natuurkunde
Algoritmen en Datastructuren (ALDAT) EVMINX4 Dagdeel 2.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
C++ handboek : C++ Leen Ameraal 6e druk academic service.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
Inleiding programmeren in C++ Life Science & Technology 9 februari Universiteit Leiden.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Deel I: Programmeertaal C 6. Arrays en Pointers
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Chris Pollentier 18 / 12 / 2002 De LOGO taalwereld.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 3: Werken met numerieke gegevens.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
Tircms03-p les 6 Templates. Functietemplates void verwissel(int &x, int &y); { int w=x;x=y;y=w;} Dezelfde functie voor meerdere types heet een functietemplate.
Tircms03-p les 7 Standaardfuncties. In header opnemen bijv: using namespace std // C++ // oude C.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
Les 1: Zaterdag 10 mei 2014 Wim Peeters
JAVA: een platformonafhankelijke taal
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Instructie Programmeren Task 7
Programma zonder window commandline interface. Commandline programma public static void main (String [ ] params) { System. out. println (“Hoi allemaal!”);
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Graphics, input & more!.  Graphics  Input  Sound  … game loop?
Loops en errors Array's Random try catch for loop while loop do while loop.
Bestanden Lezen Schrijven Afbeeldingen. Bestandstypen.txt.png eigen.
GUI & classes Een Gui in een class steken en het object gebruiken.
18 Februari 2013 Where friends have access to your privates!
Aanroep van een methode voert opdrachten uit in de body daarvan
Pointers, arrays & dynamische geheugen
Gameprogrammeren: Objecten en geheugen
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Variabelen, declaraties en toekenningen
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Basis Gameprogrammeren
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Tinpro015b-les6 Templates.
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Tinpro015b-les4 Klassen.
Arjan Egges Paul Bergervoet Wouter van Toll
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Software Development fundamentals
Transcript van de presentatie:

tinpro015b-les5 Invoer en Uitvoer

Standaard “Streams” #include <iostream> using namespace std; iostream  >> invoeroperator << uitvoeroperator cin standaard-invoerstream cout standaard-uitvoerstream cerr standaard-fout-uitvoerstream clog standaard-fout-uitvoerstream gebufferd

Standaard “Streams” type van cin is een klasse istream type van cout,cerr,clog is een klasse ostream afgeleide klasse van de basisklasse ios

Uitvoer uitvoer heet insertie bij C++ Alles voor cout geldt ook voor files << operator uitvoer (links-associatief) cout << ch << ‘=‘ is identiek aan (cout.operator<<(ch)).operator<<(‘=‘)

Ingebouwde inserter-types Het type wat volgt op cout << wordt inserter-type genoemd char , short , int , long ,const char* , string, float,double,long double, void* (hex-adres) Naast << operator de ostream lidfuncties put en write (primitieve uitvoer) cout.put(ch) ( 1 karakter) cout.write(a,n) ( n karakters schrijven vanaf adres a

Manipulatoren voor uitvoer #include <iomanip> cout << f cout << setw(15) << setprecision(10) << .. veldbreedte = 15 kar ( totaal aantal kar) precisie = 10 kar ( aantal kar na komma)

Manipulatoren voor uitvoer manipulatoren uitvoer: setw(n),setfil(ch),dec,hex,oct,flush,endl,ends, setprecision(n),boolalpha,noboolapha, showbase,showpoint,showpoint,uppercase, nouppercase,left,right,internal,fixed,scientific cout << hex << i <<‘ ’ << j ( i en j hexadecimaal afdrukken) cout << setw(15) <<i << j ( alleen voor i wordt de veldbreedte 15)

Invoer invoer heet extractie bij C++ Alles voor cin geldt ook voor files >> operator invoer (links-associatief) cin >> i >> j is identiek aan (cin.operator>>(i)).operator>>(j)

Invoer primitieve invoer: cin.get(ch) of ch= cin.get() (lees 1 karakter) cin.putback(ch) (kar terug in buffer) cin.get(str,40) (leest 39 karakters) char str[40] ; cin.read(str,40) (leest 40 karakters) string s; cin >>s (leest 1e string in) getline(cin,s) (leest hele regel in) char str[30]; cin.getline(str,30); cout << str << endl; ( C-stijl , leest 29 karakters)

Ingebouwde extractor-types De volgende ingebouwde extractor-types: Char , short , int , long char* ,string , float , double , long double , bool

Manipulatoren voor invoer De volgende invoer-manipulatoren: setw(n) , setfill(ch) , noskipws , dec ,hex ,oct, boolalpha, noboolalpha char ch; cin >> ch; (alle spaties worden weggelezen) char >> noskipws >> ch; ( ook spaties worden aan ch toegekend)

Files en streams Voor invoer files gebruiken we ifstream (afgeleide klasse van istream) Voor uitvoer files gebruiken we ofstream (afgeleide klasse van ostream)

Files en Streams ios istream ostream istringstream ifstream iostream ofstream ostringstream fstream stringstream

Files en Streams Kopieer file aa naar file bb int main() { char ch; int n=0; ifstream ff(“aa”) ; if (!ff) { cout << “kan file aa niet openen.\n”; return 1} ofstream gg(“bb”); if (!gg) { cout << “kan file bb niet openen.\n”; return 1} while (ff.get(ch)) { gg.put(ch); n++ } cout << n << “karakters gecopieerd\n”; return 0; }

Files en Streams Het verband tussen de stream ff en de file aa wordt gelegd door openen ifstream ff(“aa”) de constructor van ifstream Bij tekstfiles worden 9 bytes gelezen <cr> Bij binaire files worden 10 bytes gelezen <cr><lf> Bij binaire files kan gcount() het aantal gelezen bytes opvragen

Openen en sluiten Streams ifstream ff // declaratie zonder openen ff.open(“aa”) // open ff voor file aa ff.close() // sluit ff ff.open(“aaa”) // open ff voor file aaa tweede argument van lidfunctie open: fstream ff(“aa”. ios:: in | ios::out | ios::binary | ios::trunc | ios::app | ios::ate); de argumenten we combineren met | ( bit of)

Random Access Bij binaire mode kun je een file random benaderen Identiek als bij een array Je kunt een willekeurige positie aanwijzen (random access) Bij tekstfiles begin je aan het begin van de file tot het einde toe ( sequential access) fseekg(i) wijst i-de byte aan van stream f bij lezen ( i = type long) fseekp(i) wijst i-de byte aan van stream f bij schrijven ( i = type long)

Random Access tweede argument seekg of seekp: f.seekg(offset, ios::beg); f.seekg(offset, ios::cur); f.seekg(offset, ios::end); long posget = f.tellg(); posput = f.tellp(); leest huidige positie uit

Statusbits ios bevat statusbits, o.a. ios::failbit , ios::eofbit de overeenkomstige functies heten fail() , eof() fail() is true als er iets mis gegaan is de functie f.clear() zet alle statusbits op 0 if (!ff) kan vervangen worden door if ( ff.fail()) maar niet door if (ff.eof()) wat niet gebruikt kan worden voor het testen van de aanwezigheid van de file

Huiswerk les 5 Maak de opgaven 8.1, 8.3, 8.8 uit C++ boek Bestudeer Hfdst 9 uit C++boek