Ĺadny brzuch
Witam
Mam plik tekstowy o takiej treści
GET / HTTP/1.1\r\nhost: macszur.eu.org\r\n\r\n
no i czemu jak czytam w ten sposób
std::string tmpbuf, buf; for(;; ) { tmpbuf>>buf; if(plik.eof()) break; buf+=tmpbuf; }
to jak wypiszę buf albo użyję go gdzieś to znaki typu \r i \n nie są traktowane jako jeden znak(tak jest jak np. napiszę buf = "\n\r etc." to są traktowane jako jeden znak), tak samo jak wczytam tak
std::getline(plik, tmpbuf,';');
(jeśli oczywiście na koniec tamtego pliku dam ;) i tak samo jest jak wczytam tak
char znak; std::string buf; for(;; ) { znak = plik.get(); if(plik.eof()) break; buf+=znak; }
czemu tak jest? i jak wczytać by wczytać "dobrze"(tzn by były traktowane jako jeden znak)?
// sprawdziłem jeszcze taki sposób
plik.get(znak, 1024, ';');
ale on wogóle niechce wczytać
jak plik tekstowy dałem też wcześniej zapisany plik z programu i jak go załadowałem to się wczytało dobrze
hmm jedyne co mi przychodzi do głowy to żeby dało się wczytywać tamtymi sposobami "zwykły" plik(czyli nie stworzony przez program) to późniejsza zamiana znaków \r na \r tyle że już "programowe"
Użytkownik Edas edytował ten post 02 październik 2006, 19:54
Plik musisz otwierać do odczytu i zapisu bianarnie :)
i tak nie działa ;( ale tak pomyślałem że parser napiszę i będzie spoko(choć warto by wiedzieć czy da się też tak)
Jeśli ten plik po otwarciu notatnikiem ma taką treść jaką podałeś oznaczałoby to, że '\' to tak naprawdę jest '\\'.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam plik tekstowy o takiej treści
GET / HTTP/1.1\r\nhost: macszur.eu.org\r\n\r\n
no i czemu jak czytam w ten sposób
std::string tmpbuf, buf; for(;; ) { tmpbuf>>buf; if(plik.eof()) break; buf+=tmpbuf; }
to jak wypiszę buf albo użyję go gdzieś to znaki typu \r i \n nie są traktowane jako jeden znak(tak jest jak np. napiszę buf = "\n\r etc." to są traktowane jako jeden znak), tak samo jak wczytam tak
std::getline(plik, tmpbuf,';');
(jeśli oczywiście na koniec tamtego pliku dam ;) i tak samo jest jak wczytam tak
char znak; std::string buf; for(;; ) { znak = plik.get(); if(plik.eof()) break; buf+=znak; }
czemu tak jest? i jak wczytać by wczytać "dobrze"(tzn by były traktowane jako jeden znak)?
// sprawdziłem jeszcze taki sposób
plik.get(znak, 1024, ';');
ale on wogóle niechce wczytać
jak plik tekstowy dałem też wcześniej zapisany plik z programu i jak go załadowałem to się wczytało dobrze
hmm jedyne co mi przychodzi do głowy to żeby dało się wczytywać tamtymi sposobami "zwykły" plik(czyli nie stworzony przez program) to późniejsza zamiana znaków \r na \r tyle że już "programowe"
Użytkownik Edas edytował ten post 02 październik 2006, 19:54
Plik musisz otwierać do odczytu i zapisu bianarnie :)
i tak nie działa ;( ale tak pomyślałem że parser napiszę i będzie spoko(choć warto by wiedzieć czy da się też tak)
Jeśli ten plik po otwarciu notatnikiem ma taką treść jaką podałeś oznaczałoby to, że '\' to tak naprawdę jest '\\'.