/*

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 <stdio.h>


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;
}