1 / 8

Veel faili kirjutamisest

Veel faili kirjutamisest. Koosta “päeva küsimuse” programmike. Küsimusi mõtle 3, igal neist vastusevariante 3 (ja/ ei / ei tea (võib-olla vms)). Abistavat infot järgmistel slaididel.

pahana
Download Presentation

Veel faili kirjutamisest

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. Veel faili kirjutamisest

  2. Koosta “päeva küsimuse” programmike. Küsimusi mõtle 3, igal neist vastusevariante 3 (ja/ ei / ei tea (võib-olla vms)). Abistavat infot järgmistel slaididel.

  3. Kuna küsimuse tekstis võivad olla funktsiooni printf-vormingut eksitavad eraldajad, nagu tühik, on sisestusfunktsiooniks seekord ‘gets’. Nimetatud funktsioon edastab kõik enne Enter-klahvi sisestatud märgid ja reavahetuskoodi parameetrina näidatud mäluväljale. NB! Programmeerija peab tagama, et mälu oleks sisestatud teksti jaoks piisavalt.

  4. Seejärel küsitakse korduvalt vastusevariante kuni nulli sisestamiseni. “Lõputu tsükli” while(1) ja tema sees paikneva katkestamise if(!vastus)break asemel võib tsükkel alata ka näiteks kordus­spetsifikatsioonideta for-lausega for(;;).Kuna protsendi­märk omab printf-funktsiooni vormingus eri tähendust, on mugavam see märk deklareerida märgikonstandina. const char protsent='%'; Juhised käes - nüüd tee proge valmis.

  5. Väikesed täiendused Et need küsimused ja vastuste jaotused ei läheks programmi töö lõpus kaduma, kirjutatakse nad logifaili ‘logi.txt’ lõppu. Seda aga vaid juhul, kui programmi käivitamisel näidatakse esimese parameetrina ‘L’-täht. Logifailide kasutamise korral on parameetriga juhitav andmete salvestamise lubamise või keelamise viis üks paindlikumaid.

  6. Programm algab nüüd nii: int main(int argc, char *argv[]) sest kontrollitakse edastatud parameetrite arvu ja esimese väärtust. Lisandunud on järgmised deklaratsioonid ja laused programmi algusesse: int logi=0; FILE *fp; if(argc>1 && *argv[1]=='L')logi=1; if(logi)fp=fopen("logi.txt","a"); if(fp==NULL)logi=0;

  7. Muutuja ‘logi’ väärtus määrab, kas logifaili kasutatakse. Seda tehakse juhul, kui programmi esimese parameetri esimene märk on ‘L’. Fail avatakse lisamisrežiimis (“a”) ning kui mingil vähe tõenäolisel põhjusel peaks faili avamine ebaõnnestuma, muudetakse ‘logi’ väärtus taas nulliks. Selle muutuja väärtust läheb taas vaja programmi töö lõppemisel, vahetult enne return-lauset: if(logi){ fputs(kysimus, fp); fprintf(fp, " Jah - %d, Ei - %d\n", jah, ei); fclose(fp);}

  8. Kui programm käivitada nüüd käsuga Kysitlus L või näidata parameetri väärtus C/C++ töökeskkonna vastavas menüüs (näiteks Execute-Parameters... Dev-C++ kasutamise puhul), salvestatakse küsimus ja vastuste jaotuse lõppseis logifaili: Kas Eesti saab olümpialt kuldmedali? Jah - 10, Ei - 32

More Related