FILE
Mam problem ak pouzijem FILE *a,*b; a=fopen("a","w"); b=fopen("a","r") v int main tak a a b nemozem pouzit vo vlastnych funkciach ako na to ??? :D Inac povedane vo vlastnej funkcii mi neide fprintf(a,"aaaaa");
Pre pridávanie komentárov sa musíte prihlásiť.

$ cat test.c #include <stdio.h> #include <stdlib.h> int main(void) { FILE *a, *b; int c; a = fopen("a", "w"); if (! a) { perror("a"); return EXIT_FAILURE; } b = fopen("b", "r"); if (! b) { perror("b"); fclose(a); return EXIT_FAILURE; } fprintf(a, "Hello, file!\n"); fclose(a); while((c = fgetc(b)) != EOF) putchar(c); fclose(b); return EXIT_SUCCESS; } $ cat a cat: a: No such file or directory $ cat b Ahoj! $ gcc test.c $ ./a.out Ahoj! $ cat a Hello, file! $ cat b Ahoj!Skus tvoj problem demonstrovat na kratkom programe.
void funkcia() { ... fprintf(a,"aaaaa"); ... } main() { ... FILE *a,*b; a=fopen("a","w"); b=fopen("a","r"); ... funkcia(); //volanie funkcie ... }a nejde ti to skompilovať.
To je preto lebo premenné "a" a "b" funkcia() nepozná. Tieto premenné musia byť deklarované ešte pred definíciou funkcie(), alebo posielané funkcii() ako parametre.
takže máš napríklad tieto dve riešenia:
void funkcia(); FILE *a,*b; main() { ... a=fopen("a","w"); b=fopen("a","r"); ... funkcia(); //volanie funkcie ... } void funkcia() { ... fprintf(a,"aaaaa"); ... }alebovoid funkcia(FILE *parameter); main() { ... FILE *a,*b; a=fopen("a","w"); b=fopen("a","r"); ... funkcia(a); //volanie funkcie ... } void funkcia(FILE *parameter) { ... fprintf(parameter,"aaaaa"); ... }