Mam taky dotaz da sa napisat knižnica na pracu z suborma? tak aby tam byly ošetrene chyby napr neotvorenie alebo zle zatvorenie? skušal sem to ale nejak mi to stale hadže errory... aku hodnotu pravdepodobne vracat void?? Dekuju za každu reakciu
Fórum › C / C++
Library file
#ifndef TD_13 #define TD_13 # include <stdio.h> #include "file_lib.h" void open_file_read(){ FILE *zdroj; zdroj = fopen("zdroj.txt", "r"); if (zdroj == NULL){ printf("Nepodařilo se otevřít soubor \n"); return; } } void open_file_write(){ FILE *cil; cil = fopen("cil.txt", "w"); if (cil == NULL){ printf("Nepodařilo se otevřít soubor \n"); return; } } void close_file_read(){ fclose(zdroj); } void close_file_read(){ fclose(cil); } #endif
Toto je samozrejme len tady sen a plany pokus pisania niečeho nejsem programator len laik a snažim sa naučit s tymto hrat PS neukamenujte ma ak je to cele zle
Funkce open_file_read a open_file_write by měly nejspíš vracet ukazatel na FILE. V takovém případě jsi vlastně ale napsal funkci, která se od fopen liší jen v tom, že v případě neúspěchu vypíše hlášku.
FILE *open_file_read(){
// Nastavuj ukazatele na NULL nebo nulu hned při jejich deklaraci
FILE *zdroj = 0;
zdroj = fopen("zdroj.txt", "r");
if ( !zdroj ){
printf("Nepodařilo se otevřít soubor \n");
return 0;
}
// Vrátíme odkaz na nově otevřený soubor
return zdroj;
}
FILE *open_file_write(){
// Nastavuj ukazatele na NULL nebo nulu hned při jejich deklaraci
FILE *cil = 0;
cil = fopen("cil.txt", "w");
if ( !cil ){
printf("Nepodařilo se otevřít soubor \n");
return NULL;
}
// Vrátíme odkaz na nově otevřený soubor
return cil;
}
Netuším jak hluboké máš znalosti a jestli jsi při učení se došel i k předávání parametrů, jestliže ano, bylo by dobré k funkcím přidat parametr se jménem souboru. Funkce tak budou univerzálnější - budou moct otevřít jakýkoli soubor (s ohledem na práva).
FILE *open_file_read( const char *soubor ){
FILE *zdroj = 0;
// Změníme první parametr funkce fopen
zdroj = fopen( soubor , "r");
if ( !zdroj ){
printf("Nepodařilo se otevřít soubor \n");
return 0;
}
return zdroj;
}
A když koukám na ty poslední funkce, pracují s proměnnými, které nejsou v jejich oboru viditelnosti. Přepiš je tak, aby jako parametry braly ukazatel na FILE a tento soubor zavřely. Pak stačí jen jedna funkce.
int close_file( FILE *soubor ){
// změníme parametr funkce fclose
fclose( soubor ) == 0 ? return 1 : return 0;
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Dynamic library import file - include path problém — založil hlucheucho
CURL library — založil DaveX
Dynamic Link Library... — založil laik
GLCD library nokia 3310 — založil loton
Foxpro 2.5 library distribution kit — založil Elox
Moderátoři diskuze