Parametr fopen - načítání souborů – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Parametr fopen - načítání souborů – C / C++ – Fórum – Programujte.comParametr fopen - načítání souborů – C / C++ – Fórum – Programujte.com

 

David
~ Anonymní uživatel
175 příspěvků
22. 5. 2013   #1
-
0
-

Čau, předem se omlouvám, pokud můj dotaz bude základního charakteru, ale v C se teprve učím, tak děkuji za trpělivost s moji maličkostí  . Mám následující problém. Vytvářím aplikaci, v konzoli, kde hlavním úkolem  je načítání textových souborů a následné vypsání do konzole. Dělám to pomocí příkazu "fopen", kde celé znění je např. fopen(jmeno.txt"rt"); Mým problémem je to, že bych toto otevírání souborů chtěl udělat do cyklu, takže jsem si vytvořil pole a jména bych chtěl načítat z toho pole. Např. fopen(pole[0].txt"rt"). Tento postup se ale mašince nelíbí a tak bych se chtěl zeptat, jestli existuje nějaká jiná varianta řešení nebo v čem mám případně chybu.

Díky

Nahlásit jako SPAM
IP: 89.176.251.–
crazy
~ Moderátor
+10
Grafoman
22. 5. 2013   #2
-
0
-

#1 David


char buffer[80]; // zalezi na maximalni delce nazvu souboru
strcpy(buffer, pole[0]);
strcat(buffer, ".txt");
fopen(buffer, "r");
Nahlásit jako SPAM
IP: 147.32.31.–
All you need is vision and time.
22. 5. 2013   #3
-
0
-

Řetězec v C je v paměti ukládán jako pole typu char. Pokud chceš mít názvy souborů v poli, pak musíš mít dvourozměrné pole char.

   char nazvy [3] [128];

   strcpy(nazvy[0], "prvni.txt");
   strcpy(nazvy[1], "druhy.txt");

   for (int i = 0; i < 3; i++) {
	 fopen(nazvy[i], "r");
   }

Důležité je nezapomenout ověřit, zda soubor je otevřen

hu

Nahlásit jako SPAM
IP: 195.178.67.–
vitamin+8
Grafoman
22. 5. 2013   #4
-
0
-

Ak budu tie subory zname pri kompilacii tak staci:

 

char* files[]{
	"file1.txt", 
	"file2.ssa",
	"file_N.str"
	//....
};
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
David
~ Anonymní uživatel
175 příspěvků
22. 5. 2013   #5
-
0
-

Děkuji moc za rady, ale pořád mě to nějak zlobí. Muj kód je ve zkratce následujici:

fcti = fopen("nazvy[0]","r");

fgets(s1,50,fcti);

fclose(fcti);

printf("%s\n",s1);

kde s1 je pole char

Chybova hláška mě píše expression (str=!NULL)

Nahlásit jako SPAM
IP: 89.176.251.–
vitamin+8
Grafoman
22. 5. 2013   #6
-
0
-

#5 David
 

fopen("nazvy[0]","r");	//pokusas sa otvorit subor s menom: "nazvy[0]"

fopen(nazvy[0], "r");	//chcel si zrejme pouzit nieco taketo
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
David
~ Anonymní uživatel
175 příspěvků
23. 5. 2013   #7
-
0
-

#6 vitamin
Jojo přesně tak, troška nepozornosti a jakou to nadělá neplechu    Mám se ještě hodně co učit, ale moc díky za radu! 

Nahlásit jako SPAM
IP: 89.176.251.–
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, 7 hostů

Podobná vlákna

Nacitani souboru — založil tester

Nacitani souboru v C — založil latis

Načítání dat ze souboru — založil GunSpawn

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ý