Jak nadać nazwę pliku przez użytkownika ?

0

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 ?

0
 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/

0

jest ktoś w stanie pomóc ?

0
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óżę.

0

Mają być zapisane dane przed uruchomieniem, sam mam je wypełnić. Trzeba zrobić tak jak napisałeś powyżej, tylko nie wiem jak.

0

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

0

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.

0

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ę!

0

mam zainkludowane fstream, to czemu nie poszło ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1