Tiedosvirtat Puskuroiduissa virroissa lukeminen/kirjoittaminen tapahtuu lohko kerrallaan stdin – puskuroitu (näppäimistö) stdout – purkuroitu (näyttö)

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Copyright  Hannu Laine Reaaliaikaohjelmointi Osa 9 Hannu Laine Putket Fifot.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Hannu Laine 1 Tietorakenteet ja algoritmit Funktio-osoittimet Funktio-osoittimen ja taulukko-osoittimen vertailu Funktio-osoittimen käyttötapoja.
Tietorakenteet ja algoritmit
Terminaaliasetukset Sivut 1 – 7 käsittelevät terminaali i/o:ta. Niitä ei käsitellä tunnilla. Asioiden tunteminen voi olla hyödyllistä, sillä niitä voidaan.
Tiedostonhallinta CD-ROM, nauha-asema, optiset levyt…
C:\RI400 hakemistosta valitaan ExcelPDFConverter ja klikataan sitä.
Copyright  Hannu Laine Osoittimet ja taulukot Hannu Laine.
C-kieli ja dynaaminen muistin varaus
Rakenteinen ohjelmointi
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Sovellusohjelman suunnittelu & toteutus
Komentoriviparametrit
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
1 Tulostaminen ja tiedostot. 2 Tulostaminen paperille n Tulostus voidaan tehdä esimerkiksi: –Crystal Reports -raporttigeneraattorilla –Printer-objektin.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
Osoitin ja char- tietotyyppi tMyn1 Osoitin ja char-tietotyyppi Osoitinmuuttuja, joka on tyyppiä char* voidaan alustaa merkkijonolla: char* alku=”En toivo.
Sami Jantunen LTY/Tietotekniikan osasto
© Jukka Harju, Jukka Juslin
Funktion esittely eli prototyyppi tMyn1 Funktion esittely eli prototyyppi Funktion esittely (function declaration) kertoo funktion nimen, parametrien tyypit.
String-vertailusta ja Scannerin käytöstä (1/2)
Kuinka niitä käsitellään
Tietovirrat ja tiedostot. Anne Benson Tiedon koodaus it-järjestelmissä pienin tietoyksikkö bitti –kaksi tilaa: nolla (sähkövirtaa ei ole) yksi (sähkövirtaa.
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
1 Tietovirrat ja niiden suunnat Tietovirralla on aina suunta Tiedostoon tallentaessa käytetään OutputStream-luokasta perittyjä luokkia Tiedostosta luettaessa.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Johdatus ohjelmointiin – C kielen peruselementit Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
ict1td002 - Copyright Raine Kauppinen 1 Tietovirrat  Tietovirran käsite  Tietovirtojen käyttö  Tekstitiedoston luku  Tekstitiedoston kirjoitus.
2. Lisää Java-ohjelmoinnin alkeita
FunktiottMyn1 Funktiot Funktiot voidaan jakaa –Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto.
Tiedostojen käsittely
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
Muuttujan osoite int a=1; 0xbfffea64 /* tulostetaan a:n osoite*/ printf(“%p\n”, &a); 0xbfffea68 /* tulostetaan a:n osoite + 1*/ printf(“%p\n”, &a+1); /*
C-ohjelman käännösvaiheet
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
Core dump Ohjelman kaatuessa tietynlaisiin virheisiin (erityisesti muistivirheeseen, segmentation fault), sen senhetkinen tila (muistin kuva) voidaan tallettaa.
Bittioperaatioita C:ssä on kuusi operaattoria kokonaislukujen käsittelemiseen bittitasolla: > siirto oikealle (shift.
Otsikkotiedosto tarjoaa tyypin ja joukon makroja muuttuvien parametrilistojen käsittelyyn, siis funktioiden, joiden parametrien määrä ja/tai tyyppi voi.
String-vertailusta ja Scannerin käytöstä (1/2)
Virheiden käsittely Hyvä ohjelma ei koskaan kaadu hallitsemattomasti, vaan tuottaa järkevän virheilmoituksen tai muuten käsittelee virhetilanteen jollain.
6. Tiedostot.
1. Omat operaatiot.
Poikkeustenkäsittelylohkot try-catch
Kuinka niitä käsitellään
8. Näppäimistöltä lukeminen
7. Hyvä ohjelmointitapa..
19. Tietovirrat.
8. Näppäimistöltä lukeminen
Kuinka niitä käsitellään
14. Hyvä ohjelmointitapa.
ioctl #include <sys/ioctl.h> int ioctl(int d, int request, ...);
Toistorakenteet Toistorakenteissa on usein tarve esim. toistaa jotakin lausetta tai lohkoa n kertaa, toistaa jotakin lausetta tai lohkoa kunnes jokin muuttuja.
7. Hyvä ohjelmointitapa..
PHP Tietokantaohjelmointi 1
7. Näytölle tulostaminen
H Kirjoita nauhaan oma viestisi! Voit muuttaa tekstiä kirjain kerrallaan valitsemalla kirjaimen ja kirjoittamalla uuden. Kussakin diassa on yksi kirjain.
3. Attribuutit.
eli oliotiedostojen käsittely
H Kirjoita nauhaan oma viestisi! Voit muuttaa tekstiä kirjain kerrallaan valitsemalla kirjaimen ja kirjoittamalla uuden. Kussakin diassa on yksi kirjain.
Esityksen transkriptio:

Tiedosvirtat Puskuroiduissa virroissa lukeminen/kirjoittaminen tapahtuu lohko kerrallaan stdin – puskuroitu (näppäimistö) stdout – purkuroitu (näyttö) stderr – puskuroimaton (näyttö)

fscanf(),scanf() fprintf(),printf() fscanf(stream) lukee syötteen tietovirrasta stream scanf() vastaa fscanf():ää, mutta se lukee ainoastaa virrasta stdin Syöttölauseissa [lista] on hyväksyttävien syötemerkkien lista. [^lista] on ei hyväksyttävien merkkien lista fprintf(stream) tulostaa tietovirtaan stream printf() vastaa fprintf():ää, mutta se tulostaa ainoastaan tietovirtaan stdout

Muotoilumerkkijono % liput leveys [. tarkkuus] tyyppi muunnos leveys tarkoittaa minimileveyttä

Tietotyypin määräävä muunnosmerkki

fopen() – tiedoston avaaminen ”r”avaa tekstitiedosto lukemista varten ”w”avaa tekstitiedosto kirjoittamista varten, olemassa oleva tiedosto poistetaan ”a”luo tekstitiedosto kirjoittamista varten tai kirjoita olemassa olevan tiedoston loppuun ”r+”avaa tekstitiedosto lukemista ja kirjoittamista varten ”w+”avaa tekstitiedosto kirjoittamista ja lukemista varten, olemassa oleva tiedosto poistetaan ”a+”avaa tekstitiedosto lukemista ja kirjoittamista varten olemassa olevan tiedoston loppuun FILE *fopen(const char *nimi, const char *moodi); b edellisten lopussa on binääritiedostoille

Kirjastofunktioiden virheet fopen() voi epäonnistua useista eri syistä int main(void){ FILE *fp; if((fp=fopen("tiedosto.txt", "r")) == NULL){ perror("tiedostonavaaminen"); exit(EXIT_FAILURE); } return 0; } perror(const char *viesti);

getc(FILE *) ja putc(int, FILE *) getchar() luki merkin stdin:stä (näppäimistö) getc(fp) lukee merkin virrasta fp putc() kirjoittaa merkin tiedostovirtaan merkki=getc(stdin); putchar(merkki); merkki=getchar(); putc(merkki, stdout);

Tiedoston loppu getc() palauttaa erikoisarvon EOF kun yritetään lukea tiedoston lopusta char merkki; FILE *fp; fp=fopen(”tiedosto.txt”, ”r”); merkki = getc(fp); while(merkki != EOF){ putchar(merkki); merkki = getc(fp); }

fflush(FILE *) ja fclose(FILE *) fflush(fp) kirjoittaa puskurissa olevan datan fp:n osoittamaan outputtiin fclose() kirjoittaa puskurissa olevan datan ja sulkee tiedosvirran

Komentoriviargumentit int main(int argc, char *argv[]) Komentoriviargumenttejä voidaan käytää main():ssä kahden argumentit avulla Tapana kutsua niitä nimillä: argc ja argv 3 argc./print yksi kaksi argv./print yksi kaksi NULL./print\0 yksi kaksi

Tiedosto I/O fprintf() ja fscanf() toimivat kuten printf() ja scanf() tiedostovirroille Lukee rivinvaihtoon, tiedoston loppuun tai kunnes n-1 merkkiä on luettu Kirjoittaa merkkijonon tietovirtaan palauttaa EOF:n virhetilanteessa int fputs(const char *, FILE *); FILE *fgets(char *, int n, FILE *);

Satunnaishaku tiedostoista fseek() ja ftell() Käytetään normaalisti binäärimuodossa avatuihin tiedostoihin Siirtyy haluttuun kohtaan tiedostossa whence arvo määrittää siirtymismoodin: SEEK_SET – tiedoston alku SEEK_CUR – nykyinen paikka SEEK_END – tiedoston loppu int fseek(FILE *, long offset, int whence);

Binääri I/O: fread() ja fwrite() Lukee n data-alkiota joiden koko on k tavua ptr:n osoittamaan muistipaikkaan Kirjoittaa n data-alkiota joiden koko on k tavua ptr:n osoittamasta muistipaikasta size_t fread(void *ptr, size_t k, size_t n, FILE *); size_t fwrite(const void *ptr, size_t k, size_t n, FILE *);

feof() ja ferror() Lukufunktion palauttama EOF tarkoittaa tavallisesti tiedoston loppua Se voi myös tarkoittaa lukuvirhettä feof() ja ferror() funktioiden avulla voidaan tehdä luokittelu

Yhteenveto Tiedostovirrat: stdin, stdout, stderr fopen() tiedostojen avaamiseen Funktiot: perror, fprintf, fscanf fflush() Funktiot: fgetc, fputc, fgets ja fputs Komentoriviargumentit: argc ja argv Funktiot: fread, fwrite, fseek, ftell “b” optio fopen():lle binääritiedostoja varten