Library file – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Library file – C / C++ – Fórum – Programujte.comLibrary file – C / C++ – Fórum – Programujte.com

 

TD
~ Anonymní uživatel
28 příspěvků
23. 4. 2014   #1
-
0
-

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

Nahlásit jako SPAM
IP: 94.112.152.–
Lorin0
Návštěvník
23. 4. 2014   #2
-
0
-

Samozřejmě, napsat můžeš cokoli ;).

Void sám o sobě nic nevrací, je to datový typ. Pokud myslíš funkci vracející void, můžeš to s zjednodušením brát tak, že nevrací nic. 

Jestli chceš poradit, postni sem Tvůj kód.

Nahlásit jako SPAM
IP: 89.190.72.–
TD
~ Anonymní uživatel
28 příspěvků
23. 4. 2014   #3
-
0
-

   

#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

Nahlásit jako SPAM
IP: 94.112.152.–
Doomista+1
Stálý člen
24. 4. 2014   #4
-
0
-

Ta funkce na otevírání by mi spíš dávala smysl, kdyby vracela FILE *, pokud má dělat pouze to, co máš v kódu.

Nahlásit jako SPAM
IP: 86.49.91.–
Na vše stačí iostream...
Lorin0
Návštěvník
24. 4. 2014   #5
-
0
-

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;
}
Nahlásit jako SPAM
IP: 89.190.72.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý