
Tohle je vlastně tak trochu pokračování čtvrté kapitoly, ale potřebujete k tomu znát
podmínky a cykly, takže jsem to musel přehodit.
4.5 Souborový vstup a výstup
Se soubory se dělá podobně jako s konzolí. Je tam ale jeden rozdíl - konzole je
jen jedna, ale souborů je víc, takže každý soubor se v Céčku otevře do svojí vlastní
proměnné :
#include <stdio.h>
int main()
{
FILE *soubor;
soubor = fopen("jmeno_soub", "jak_otevrit"); // otevře soubor
if(soubor == NULL) {
printf("Nepodařilo se otevřít soubor");
getchar();
return 0;
}
fclose(soubor); // uzavře soubor
getchar();
return 1;
}
|
void main()
{
FILE *fr;
char c;
fr = fopen("text.txt", "r");
if(fr == NULL) {
printf("Soubor nejde otevrit !\n");
getchar();
return;
}
c = fgetc(fr);
fclose(fr);
putchar(c);
getchar();
}
|
void main()
{
FILE *fr;
int c;
fr = fopen("text.txt", "r");
if(fr == NULL) {
printf("Soubor nejde otevrit !\n");
getchar();
return;
}
while((c = fgetc(fr)) != EOF)
putchar(c);
// čte a tiskne soubor text.txt
fclose(fr);
getchar();
}
|
void main()
{
FILE *fr, *fw;
int a, b;
fr = fopen("a.txt", "r");
fw = fopen("b.txt", "w"); // otevreme pro zapis
if(fr == NULL || fw == NULL) {
printf("Soubor nejde otevrit !\n");
if(fr != NULL)
fclose(fr);
if(fw != NULL) // před koncem programu musíme
fclose(fw); // uzavřít všechny soubory
getchar();
return;
}
fscanf(fr, "%d %d", &a, &b);
fprintf(fw, "%d + %d = %d\n", a, b, a + b);
fclose(fr);
fclose(fw);
getchar();
}
|
void main()
{
FILE *fr, *fw;
int i;
fr = fopen("a.txt", "r");
fw = fopen("b.txt", "a"); // otevreme pro pripojeni (append)
if(fr == NULL || fw == NULL) {
printf("Soubor nejde otevrit !\n");
if(fr != NULL)
fclose(fr);
if(fw != NULL) // před koncem programu musíme
fclose(fw); // uzavřít všechny soubory
getchar();
return;
}
while(!feof(fr)) {
fscanf(fr, "%d", &i);
fprintf(fw, "%d\n", i * 2);
}
fclose(fr);
fclose(fw);
getchar();
}
|