= 'a' && c <= 'z') ? c - ('a' - 'A') : c; putc(c, fw); /* zapis do souboru */ } if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); if (fclose(fw) == EOF) printf("Soubor VELKY.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }">

Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Příklady v jazyku C – část 4. Vytvořte textový soubor ZNAKY.TXT, ve kterém budou náhodné znaky.Tento soubor čtěte po znacích cyklem „do while“. Je-li.

Podobné prezentace


Prezentace na téma: "Příklady v jazyku C – část 4. Vytvořte textový soubor ZNAKY.TXT, ve kterém budou náhodné znaky.Tento soubor čtěte po znacích cyklem „do while“. Je-li."— Transkript prezentace:

1 Příklady v jazyku C – část 4

2 Vytvořte textový soubor ZNAKY.TXT, ve kterém budou náhodné znaky.Tento soubor čtěte po znacích cyklem „do while“. Je-li znak nula,vypište “Byla to nula”, je-li 1, vypište “Byla to 1”.Je-li přečtený znak “q”, pak ukončete program. Otestujte I konec souboru EOF(). #include int main() { FILE *fr; int c; if ((fr = fopen("ZNAKY.TXT", "r")) == NULL) { printf("Soubor se nepodarilo otevrit\n"); return 1; } do { switch (c = getc(fr)) { case '0' : printf("Byla to nula\n"); break; case '1' : printf("Byla to jednicka\n"); break; } } while (c != 'q' && c != EOF); if (fclose(fr) == EOF) { printf("Soubor se nepodarilo uzavrit\n"); return 1; } return 0; system("PAUSE"); }

3 Vytvořte editorem soubor pismena.txt, kde bude několik řídek složených z malých a velkých písmen a mezer, tento soubor přečtěte a opište na obrazovku. Současně do souboru VELKY.TXT zapište obsah čteného souboru, ale malá písmenka převede na velká #include int main() { FILE *fr, *fw; int c; if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Soubor PISMENA.TXT se nepodarilo otevrit\n"); return 1; } if ((fw = fopen("VELKY.TXT", "w")) == NULL) { printf("Soubor VELKY.TXT se nepodarilo otevrit\n"); return 1; } while ((c = getc(fr)) != EOF) { putchar(c); /* vypis na obrazovku */ /* prevedeni na velka pismena */ c = (c >= 'a' && c <= 'z') ? c - ('a' - 'A') : c; putc(c, fw); /* zapis do souboru */ } if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); if (fclose(fw) == EOF) printf("Soubor VELKY.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

4 Napište program, který spočte celkový počet znaků souboru PISMENA.TXT: #include int main() { FILE *fr; int c; long int pocet = 0; /* pocet znaku v souboru */ if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Soubor PISMENA.TXT se nepodarilo otevrit\n"); return 1; } while ((c = getc(fr)) != EOF) pocet++; printf("V souboru PISMENA.TXT je %ld znaku\n", pocet); if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

5 Vytvořte program, který přečte soubor PISMENA.TXT po řádcích, každou řádku opíše do souboru KOLIK.TXT a na nové řádce uvede, kolik znaků na ní bylo: #include int main() { FILE *fr, *fw; int c, pocet = 0; /* pocet pismen na radce */ if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Soubor PISMENA.TXT se nepodarilo otevrit\n"); return 1; } if ((fw = fopen("KOLIK.TXT", "w")) == NULL) { printf("Soubor KOLIK.TXT se nepodarilo otevrit\n"); return 1; } do { while ((c = getc(fr)) != EOF && c != '\n') { pocet++; putc(c, fw); /* zapis znaku do souboru */ } /* zapis poctu znaku do souboru */ fprintf(fw, "\n%d\n", pocet); pocet = 0; } while (c != EOF); if (fclose(fr) == EOF) printf("Soubor PISMENA.TXT se nepodarilo uzavrit\n"); if (fclose(fw) == EOF) printf("Soubor KOLIK.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

6 Vytvořte program,který zapíše do souboru CISLA.TXT dvacet reálných čísel – násobků 3.14 #include int main() { FILE *fr; int i; if ((fr = fopen("CISLA.TXT", "w")) == NULL) { printf("Soubor CISLA.TXT se nepodarilo otevrit\n"); return 1; } for (i = 1; i <= 20; i++) fprintf(fr, " $%.2f\n", i * 3.14); if (fclose(fr) == EOF) printf("Soubor CISLA.TXT se nepodarilo uzavrit\n"); while ( !kbhit() ); return 0; }

7 Čtěte reálná čísla ze souboru CISLA.TXT a spočtěte jejich aritmetický průměr. #include int main() {FILE *fr; double cislo, suma; int pocet; /* pocet prectenych cislic */ pocet = 0; suma = 0; if ((fr = fopen("CISLA.TXT", "r")) == NULL) { printf("Soubor CISLA.TXT se nepodarilo otevrit\n"); return 1; } while (fscanf(fr, " $%lf\n", &cislo) == 1) { pocet++; suma += cislo; } printf("Aritmeticky prumer je: %f\n", suma / pocet); if (fclose(fr) == EOF) printf("Soubor CISLA.TXT se nepodarilo uzavrit\n"); system("PAUSE"); return 0; }

8 Napište program, který se pokouší číst neexistující soubor SCHAZI.TXT a vypíše chybovou zprávu. #include int main(void) { FILE *fr; if ((fr = fopen("SCHAZI.TXT", "r")) == NULL) printf("Soubor SCHAZI.TXT se nepodarilo otevrit\n"); else { printf("Soubor SCHAZI.TXT je otevren\n"); if (fclose(fr) == EOF) printf("Soubor SCHAZI.TXT se nepodarilo uzavrit\n"); } system("PAUSE"); return 0; }

9 Napište program,který čte obsah souboru PISMENA.TXT a má možnost si zvolit výstup buď na obrazovku, nebo do souboru NOVY.TXT. #include int main() { FILE *fr, *fw; int c; fr = fopen("PISMENA.TXT", "r"); printf("Vystup na obrazovku nebo do souboru [o / s]: "); c = getchar(); if (c == 'o') fw = stdout; else fw = fopen("NOVY.TXT", "w"); while ((c = getc(fr)) != EOF) putc(c, fw); fclose(fr); fclose(fw); return 0; }

10 V souboru CISLA11.TXT je na každé řádce jedno celé číslo, kterému předchází neznámý počet znaků $. Sečtěte tato čísla a výsledek vypište na obrazovku. #include int main(void) { FILE *fr; int c, cislo, suma = 0; if ((fr = fopen("CISLA11.TXT", "r")) == NULL) { printf("Soubor CISLA11.TXT se nepodarilo otevrit\n"); return 1; } while (1) { /* cteni uvodnich znaku '$' */ while ((c = getc(fr)) == '$') ; if (c == EOF) break; /* vraceni prvniho znaku cisla zpet do souboru */ ungetc(c, fr); fscanf(fr, "%d\n", &cislo); suma += cislo; } printf("Soucet cisel je: %d\n", suma); if (fclose(fr) == EOF) printf("Soubor CISLA11.TXT se nepodarilo uzavrit\n"); while(!kbhit(); return 0; }

11 Napište program, který vypisuje přirozená čísla od 1. Po každých 10-ti vypsaných číslech napíše “Mám pokračovat ? (A/N)” a podle odpovědi buď pokračuje, nebo skončí. #include int main(void) { int c, i = 1; for ( ; ; ) { /* nekonecny cyklus */ printf("%d\n", i++); if (i % 10 == 0) { printf("Mam pokracovat ? [A / N]: "); c = getchar(); while (getchar() != '\n') ; /* čekání na stisk ENTER */ if (c == 'n' || c == 'N') break; } } while(!kbhit()); return 0; }


Stáhnout ppt "Příklady v jazyku C – část 4. Vytvořte textový soubor ZNAKY.TXT, ve kterém budou náhodné znaky.Tento soubor čtěte po znacích cyklem „do while“. Je-li."

Podobné prezentace


Reklamy Google