Mam otworzyć plik tekstowy, który mam stworzyć samodzielnie, a nazwa ma być wczytana z klawiatury. W pliku mają być zapisane dane.
I tak się zastanawiam jak użytkownik ma podać to nazwę jak plik będzie typu ifstream i mam go stworzyć samodzielnie ?
Mam otworzyć plik tekstowy, który mam stworzyć samodzielnie, a nazwa ma być wczytana z klawiatury. W pliku mają być zapisane dane.
I tak się zastanawiam jak użytkownik ma podać to nazwę jak plik będzie typu ifstream i mam go stworzyć samodzielnie ?
std::string filename;
std::cin >> filename; //wczytaj nazwę pliku od użytkownika
std::ofstream file(filename); // to samo co std::fstream(filename, std::out);
file << someData; // zapisz dane do pliku
Musisz załączyć iostream, string i fstream.
http://www.cplusplus.com/forum/articles/6046/
http://www.cplusplus.com/doc/tutorial/files/
jest ktoś w stanie pomóc ?
nowicjusz35 napisał(a):
Otwórz plik tekstowy (stwórz go samodzielnie) o nazwie wczytanej z klawiatury, w którym w zapisane są dane osób
Zakładam że chodzi o to, abyś utworzył ręcznie, w notatniku plik tekstowy, wypełnił go przykładowymi danymi, a później otworzył go w swoim programie korzystając z std::ifstream. Nie mam treści całego zadania, wiec tylko domyślam się że o to chodzi.
nowicjusz35 napisał(a):
W pliku mają być zapisane dane.
Mają być zapisane dane przez program, czy mają już tam być zapisane, przed jego uruchomieniem? Podaj całą treść zadania, inaczej nic nie wywróżę.
Mają być zapisane dane przed uruchomieniem, sam mam je wypełnić. Trzeba zrobić tak jak napisałeś powyżej, tylko nie wiem jak.
No tak jak napisałem, tylko z ifstream
std::string filename;
std::cin >> filename; // wczytaj nazwę pliku od użytkownika
std::ifstream file(filename); // Otwórz plik o zadanej nazwie
file >> user.name >> user.password; // Wczytaj dane
Oczywiście podałem jakieś przykładowy format pliku, u Ciebie w zależności od tego jak sobie ustaliłeś. Jeżeli dane o użytkowniku przechowujesz w strukturze to polecam przeciążyć operator>>
http://4programmers.net/C/Prze%C5%82adowywanie_operator%C3%B3w#id-operatorgtgt
Do kompilatora wkleiłem:
std::string filename;
std::cin >> filename; // wczytaj nazwę pliku od użytkownika
std::ifstream file(filename);
pokazuje błąd: variable std::ifstream file(filename) has initializer but incomplete type.
Ja ten plik najpierw mam sam jakoś utworzyć na dysku ? Bo tam mam dane wpisać takie jak imie,nazwisko itp.
Na pewno masz fstream zaincludowane?
#include <fstream>
http://4programmers.net/Forum/C_i_C++/162769-Ifstream_w_projekcie_QT-Designer_-_blad_kompilacji
Edit
Nie zauważyłem drugiego pytania: Poddaję się!
mam zainkludowane fstream, to czemu nie poszło ?