Ĺadny brzuch
musze wczytac linie tekstu z pliku a nastepnie na poczatku powstalego stringu wstawic ciag "data\\". wie ktos moze jak to zrobic bo jak ja to robilem to ciagle mi sie bledy pojawialy?
#include <fstream> #include <string> #include <iostream> using namespace std; int main() { ifstream fin; fin.open("c:\\zzz.txt"); string s; getline(fin, s); fin.close(); s = "data\\\\" + s; cout << s; cin.get(); return 0; }
moze nie zabardzo sprecyzowalem swoje pytanie.
plik mam juz otwarty:
FILE* plik; if((plik=fopen("data\\map.txt","r"))==NULL) return false;
i teraz musze wczytac linie z pliku(do znaku '\n'), dodac na początku 'data\\' a potem musze miec to w postaci tablicy char. Wie ktos jak to zrobić?
[quote name='pepsi' date='15.03.2005 16:00']
s = "data\\\\" + s; cout << s; [right][snapback]255780[/snapback][/right] [/quote] Heh raczej w odwrotnej kolejności te linijki;) możesz zrobić tak, jeśli nie chcesz korzystać z obiektów: [CODE] //plik otwarty char dataStr[] = "data\\\\"; char str[1024]; fscanf(plik,"%s",str); char *wynik = strcat(dataStr,str);
W zmiennej wynik masz to so chciałeś:)
kurde, niewychodzi mi nic. musze zrobic cos takiego:
char nazwa_pliku[40]; for(int i=0;i<ilosc_tekstur;i++) { fgets(nazwa_pliku, 40, plik); MessageBox(0,nazwa_pliku,0,0); //tak dla sprawdzenia WczytajTeksture(nazwa_pliku); } //juz bez dodawania "data\\" na początku /*nagłówek funkcji WczytajTeksture()*/ void WczytajTeksture(char *NazwaPliku);
messagebox wyswietla nazwe pliku poprawnie, ale juz gdy wczytuje teksture to pojawia sie blad.
Może dlatego, że fscanf czyta do spacji lub następnej linijki, a nie tylko do nl :P
Może dlatego, że fscanf czyta do spacji lub następnej linijki, a nie tylko do nl :P
no to moze chociarz ktos wie jak odczytac linijke z pliku do tablicy char?
no to moze chociarz ktos wie jak odczytac linijke z pliku do tablicy char?
nu przeciez wrzucilem ci prosty i przyjemny przyklad nu nie? ;)
przy uzyciu std::string nie martwisz sie o dlugosc linii, a dziala to podobnie jak tablica unsigned char[], w sensie, ze przeciazony jest operator [], czego mozna wiecej pragnac ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
#include <fstream> #include <string> #include <iostream> using namespace std; int main() { ifstream fin; fin.open("c:\\zzz.txt"); string s; getline(fin, s); fin.close(); s = "data\\\\" + s; cout << s; cin.get(); return 0; }
moze nie zabardzo sprecyzowalem swoje pytanie.
plik mam juz otwarty:
FILE* plik; if((plik=fopen("data\\map.txt","r"))==NULL) return false;
i teraz musze wczytac linie z pliku(do znaku '\n'), dodac na początku 'data\\' a potem musze miec to w postaci tablicy char. Wie ktos jak to zrobić?
[quote name='pepsi' date='15.03.2005 16:00']
s = "data\\\\" + s; cout << s; [right][snapback]255780[/snapback][/right] [/quote] Heh raczej w odwrotnej kolejności te linijki;) możesz zrobić tak, jeśli nie chcesz korzystać z obiektów: [CODE] //plik otwarty char dataStr[] = "data\\\\"; char str[1024]; fscanf(plik,"%s",str); char *wynik = strcat(dataStr,str);
W zmiennej wynik masz to so chciałeś:)
kurde, niewychodzi mi nic. musze zrobic cos takiego:
char nazwa_pliku[40]; for(int i=0;i<ilosc_tekstur;i++) { fgets(nazwa_pliku, 40, plik); MessageBox(0,nazwa_pliku,0,0); //tak dla sprawdzenia WczytajTeksture(nazwa_pliku); } //juz bez dodawania "data\\" na początku /*nagłówek funkcji WczytajTeksture()*/ void WczytajTeksture(char *NazwaPliku);
messagebox wyswietla nazwe pliku poprawnie, ale juz gdy wczytuje teksture to pojawia sie blad.
Może dlatego, że fscanf czyta do spacji lub następnej linijki, a nie tylko do nl :P
Może dlatego, że fscanf czyta do spacji lub następnej linijki, a nie tylko do nl :P
no to moze chociarz ktos wie jak odczytac linijke z pliku do tablicy char?
no to moze chociarz ktos wie jak odczytac linijke z pliku do tablicy char?
nu przeciez wrzucilem ci prosty i przyjemny przyklad nu nie? ;)
przy uzyciu std::string nie martwisz sie o dlugosc linii, a dziala to podobnie jak tablica unsigned char[], w sensie, ze przeciazony jest operator [], czego mozna wiecej pragnac ;)