/* Program zmena12 v1.0 45. Je d n soubor, kterì obsahuje slova. Do jin‚ho souboru tato slova pýepiçte tak, §e ka§dou dvojici slov pýehod¡te. vol n¡: zamena12 zdroj_soubor novy_soubor pozn: posledni neparove slovo nevypise snazi se drzet puvodniho formatovani vice prazdnych znaku za sebou vynechava */ #include int main(int argc, char *argv[]) { char slovo0[256], slovo1[256]; // slovo0, slovo1 - maximalne 256 znaku int z0, z1; // znaky mezi ctenymi slovy FILE *in, *out; // vstupni a vystupni soubor if (argc != 3) { // kontrola poctu argumentu printf("Program spuste takto:\n\tzmena12.exe [vstupni soubor][vystupni soubor]\n"); return 0; } if ((in = fopen(argv[1], "rt")) == NULL) { // kontrola otevreni souboru printf("Nepodarilo se otevrit vstupni soubor: %s\n", argv[1]); return 0; } if ((out = fopen(argv[2], "wt")) == NULL) { // kontrola otevreni souboru printf("Nepodarilo se otevrit vystupni soubor: %s\n", argv[2]); return 0; } while (1) { // nekonecna smycka if (fscanf(in, "%255s", slovo0) == EOF) break; // nacti prvni slovo a pripadne ukonci cyklus, jsi-li na konci souboru z0 = fgetc(in); // prvni znak - konec souboru se hlida ve scanf if (fscanf(in, "%255s", slovo1) == EOF) break; // nacti druhe slovo a pripadne ukonci cyklus, jsi-li na konci souboru z1 = fgetc(in); // druhy znak if (z1 == EOF) z1 = '\n'; // konec souboru => posledni znak netiskni fprintf(out, "%s%c%s%c", slovo1, z0, slovo0, z1); // vypis slova v opacnem poradi a vloz mezi ne puvodni prazdne znaky } fclose(in); fclose(out); // uzavri oba soubory return 1; }