Výpis do souboru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpis do souboru – C / C++ – Fórum – Programujte.comVýpis do souboru – C / C++ – Fórum – Programujte.com

 

Kotrfa
~ Anonymní uživatel
4 příspěvky
24. 11. 2012   #1
-
0
-

Ahoj,

mám problém se zápisem do souboru spojového seznamu. Funkce na výpis vypadá takto:

133 void vypisDoSoub(Zam *zam) {
134     char* nazevSoub;
135     cout << "Nazev souboru:\n" << endl ;
136     cin >> nazevSoub;
137     ofstream expFile;
138     expFile.open(nazevSoub);
139 
140     expFile <<  "\n**********************************************\n";
141     expFile << "Zamestnanci:\n";
142     expFile <<  "**********************************************\n";
143     while (zam != NULL) {
144         expFile << "Zamestnanec: " << zam->jmeno << zam->prijmeni << " ma pl    at " << zam->plat <<  endl;
145         zam = zam->next;
146     }
147     expFile.close();
148 }

Když jí v programu spustím, dostanu segmentation fault. Nevíte, kde je chyba?
 

Nahlásit jako SPAM
IP: 94.112.34.–
crazy
~ Moderátor
+10
Grafoman
24. 11. 2012   #2
-
0
-

#1 Kotrfa
zapisuješ název souboru do paměti, kterou si nealokoval. Stačí když nahradíš char * za string

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Kotrfa
~ Anonymní uživatel
4 příspěvky
25. 11. 2012   #3
-
0
-

Tak jsem to zkusil (proste jsem prepsal char* za string). Ted mi to ale nejde ani zkompilovat a nejsem schopnej urcit proc. Neco jako: No known conversion for argument 1 from string to const char"

Nahlásit jako SPAM
IP: 94.112.34.–
Lorin0
Návštěvník
28. 11. 2012   #4
-
0
-

#3 Kotrfa
Použij

expFile.open(nazevSoub.c_str());

Funkce open vyžaduje, aby jméno souboru bylo typu char*, což je C-čkový string (pole znaků). Ty jsi mu cpal string.

Nahlásit jako SPAM
IP: 89.190.72.–
vitamin+8
Grafoman
28. 11. 2012   #5
-
0
-
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
KIIV
~ Moderátor
+43
God of flame
28. 11. 2012   #6
-
0
-

jinak v tom programu cos dal je chyba v tom, ze nemas alokovanou pamet pro nazev souboru... mas tam jen:

char* nazevSoub;

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 84 hostů

Podobná vlákna

Vypis do souboru — založil Franceq

Výpis ze souboru — založil Jirka

Výpis dat ze souboru — založil Pavel

Výpis souboru do txt — založil Odin

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ý