1 / 11

Failid

Failid. Risto Heinsar & Ott Madis Ozolit. Arvamusküsitlus. Mäletate viitasid? Nüüd kontrollime! . Faili avamine. Kasutame faili jaoks viitasid. Failiviida deklaratsioon: FILE * fi ; Faili avamine: fi = fopen (failinimi, režiim); // mõlemad parameetrid char tüüpi

Download Presentation

Failid

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Failid Risto Heinsar & Ott Madis Ozolit 2013

  2. Arvamusküsitlus • Mäletate viitasid?Nüüd kontrollime!  2013

  3. Faili avamine • Kasutame faili jaoks viitasid.Failiviida deklaratsioon:FILE *fi;Faili avamine:fi=fopen(failinimi, režiim); // mõlemad parameetrid char tüüpi • Kui faili ei õnnestu avada, siis viit jääb väärtusele NULL 2013

  4. Faili avamine • Režiimid:„r“ – read (olemasolevat faili loetakse)„w“ – write (luuakse fail, kirjutatakse vana fail üle)„a“ – append (olemasolevat faili kirjutatakse edasi. Faili puudumisel uut ei looda) 2013

  5. Faili sulgemine • Fail tuleb sulgeda selle kasutamise lõppedes. • Kõik failid tuleb sulgeda programmi lõpuks! • Faili sulgemine:fclose(failiviit); 2013

  6. Failioperatsioonid • fscanf(failiviit, sisu, …); //lugemine failist, arvestab formaatimist • fgets(siht, pikkus, failiviit); //lugemine failist rea kaupa • fprintf(failiviit, sisu, …); // kirjutamine faili, arvestab formaatimist • fputs(sisu, failiviit); //kirjutamine faili rea kaupa • feof(failiviit) // faili lõpu kontrollimine. // tagastab int tüüpi väärtuse „0“,// kui faili lõpuni EI OLE jõutud 2013

  7. Veel faili avamisest • Faili avamise õnnestumist tuleb alati kontrollida!St, kui nt avad faili „a“ või „r“ ja faili pole, siis programm ei tohi jätkata! FILE *sisend; //failiviidadeklareerimine char allikas[]={"numbrid.txt"} sisend=fopen(allikas,"r") //failiavamine if (sisend==NULL){ //kontrollime, et fail avati exit(1); // exit() funktsioontulebteegist "stdlib" } 2013

  8. Näide 1 (read) #include <stdio.h> intmain(void) { FILE *sisend; char allikas[]={"numbrid.txt"}; sisend=fopen(allikas,"r"); intabi; while(!feof(sisend)) { // lugeminekuniksfaililõpunipole jõutud fscanf(sisend, "%d", &abi); printf("\n Loeti: %d",abi); } fclose(sisend); return 0; } 2013

  9. Näide2 (write) #include <stdio.h> intmain(void) { FILE *v2ljund=fopen("numbrid2.txt","w"); inti; for(i=0; i<5; i++) { fprintf(v2ljund, "Väljastati: %d\n", i); } fclose(v2ljund); } 2013

  10. Näide 3 (append) #include <stdio.h> intmain(void) { FILE *v2ljund=fopen("numbrid2.txt","a"); inti; for(i=0; i<5; i++) { fprintf(v2ljund, "Väljastati: %d\n", i); } fclose(v2ljund); } 2013

  11. Tunnitöö • Sorteeri sisendfailist (enda loodud) loetavad arvud nii, et väljundfailis/failides oleksid arvud kasvavas järjekorras: • 3p saad, kui sorteerid nii, et võid kasutada arvuti mälu täiel määral ning tulemuse salvestad väljundfaili • 4p saad, kui sorteerid nii, et võid kõike kasutada aga sorteerimise tulemusel on paaritud arvud ühes failis, paaris teises failis. • 5psaad, kui sorteerid nii, et sa ei või faili sisu mällu lugeda, pead jagama 2 faili moodul 2 alusel (paaritud/paarisarvud) 2013

More Related