/* Program znic3232 v1.0 V zadan‚m souboru zkraœte vçechny opakuj¡c¡ se mezery na jednu mezeru. N zev souboru zad  u§ivatel z pý¡kazov‚ ý dky. vol n¡: znic3232 zdroj_soubor novy_soubor pozn: vynechava nejen nadbytecne mezery, ale veskere prazdne znaky, i konece radek */ #include int main(int argc, char *argv[]) { char slovo[256]; // slovo - maximalne 256 znaku int z; // jeden prazdny znak FILE *in, *out; // vstupni a vystupni soubor if (argc != 3) { // kontrola poctu argumentu printf("Program spuste takto:\n\tznic3232.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", slovo) == EOF) break; // nacti slovo a pripadne ukonci cyklus, jsi-li na konci souboru z = fgetc(in); // prazdny znak - konec souboru se hlida ve scanf if (z == EOF) z = '\n'; // konec souboru => posledni znak netiskni, ale slovo ano fprintf(out, "%s%c", slovo, z); // vypis slovo a jeden prazdny znak } fclose(in); fclose(out); // uzavri oba soubory return 1; }