// prace se soubory:
//	int fprintf(FILE *kam, char *ridret, ...);
//	int fscanf(FILE *odkud, char *ridret, ...);

// jsme zvykli na:
//	int printf(char *ridret, ...);
//	int scanf(char *ridret, ...);

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

FILE *otevriSouborCteni() {
	char jmeno[201];
	FILE *f;
	printf("\nZadej jmeno souboru pro cteni (\'klavesnice\' ... z klavesnice):");
	fflush(stdin);
	scanf("%200s",jmeno);
	fflush(stdin);
	if (strcmp(jmeno,"klavesnice")==0) { // retezce jsou shodne
		f=stdin; // standardni vstup z klavesnice
	} else {
		f=fopen(jmeno,"rt");
	}
	return f;
}

int zavriSoubor(FILE *jaky) {
	int rVal=0;
	if (jaky!=stdin && jaky!=stdout) {
		rVal=fclose(jaky);
	}
	return rVal;
}

FILE *otevriSouborProZapis() {
	char jmeno[201];
	FILE *f;
	printf("\nZadej jmeno souboru pro zapis (\'obrazovka\' ... na obrazovku):");
	fflush(stdin);
	scanf("%200s",jmeno);
	fflush(stdin);
	if (strcmp(jmeno,"obrazovka")==0) { // retezce jsou shodne
		f=stdout; // standardni vystup na obrazovku
	} else {
		f=fopen(jmeno,"wt");
	}
	return f;
}

int main() {
	FILE *f;
	char buffer[201];
	do {
		// zapis
		while((f=otevriSouborProZapis())==NULL) {
			printf("\nTento soubor nelze otevrit - zkus jiny");
		}
		fprintf(f,"Ahoj Svete");
		zavriSoubor(f);	
		// cteni
		while((f=otevriSouborCteni())==NULL) {
			printf("\nTento soubor nejde otevrit - zkus jiny");
		}
		if (f==stdin) {
			printf("\nMusite zadat co je v souboru - ukoncite entrem:\n");
		}
		while(!feof(f)) {
			fscanf(f,"%200s",buffer);
			printf( buffer);
		}		
		zavriSoubor(f);
		printf("\n\n... p=pokracovat, cokoli jineho=konec ...");
	} while (getche()=='p');
}

	
	
