• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Biblioteka fstream c++

0 głosów
528 wizyt
pytanie zadane 23 lutego 2017 w C i C++ przez jkdfklgdf Nałogowiec (32,020 p.)

Witam mam problem z biblioteką fstream (jak w tytule), chodzi o to ,że chciałbym użyć funkcji open() i w jej wnętrzu 

zamieściłem coś takiego

plik.open(nazwa ,ios::out | ios::app)

wcześniej oczywiście zadeklarowałem zmienną nazwa. No ale właśnie tutaj kompilator protestuje(zmieniłem nazwę nazwa na "plik.txt" i działa) zajrzałem do biblioteki do funkcji open i tam nie ma nic takiego żeby nie można było dawać tej funkcji zmiennych. Chodzi o to żeby móc sobie pozwolić na "niewiedzę" jak będzie się nazywać plik żeby zależało to np. od usera. Moje pytanie jak wysłać jej tą zmienną???

2 odpowiedzi

+4 głosów
odpowiedź 23 lutego 2017 przez plkpiotr Stary wyjadacz (12,420 p.)
wybrane 26 lutego 2017 przez jkdfklgdf
 
Najlepsza

Jako argument nazwa możesz umieścić const char* lub string, którego można pobrać ze strumienia cin.

Jeśli zdecydujesz się na string, a kompilator nie działa zgodnie ze standardem C++11 to musisz go przepuścić przez metodę c_str(), aby kompilator nie protestował. Przy okazji mam prośbę, jeżeli będziesz zadawał pytanie na forum wklej nam komunikat kompilatora dla linijki, która wywołała błąd, będzie nam znacznie łatwiej pomóc : )

Przykładowo:

string nazwa = "nazwa.txt";
std::cin >> nazwa;
uchwyt.open(nazwa.c_str(), ios::in); // bez C++11 konieczna jest c_str()

Polecam jednak korzystać z kompilatora obsługującego standard C++11, który możesz ustawić w Code::Blocksie, wchodząc w zakładkę Settings -> Compiler... zaznaczając opcję [-std=c++11].

1
komentarz 23 lutego 2017 przez draghan VIP (106,230 p.)

string'a

Jeśli już musisz odmieniać, to "stringa" - apostrof w tym wyrazie jest błędem.

komentarz 23 lutego 2017 przez plkpiotr Stary wyjadacz (12,420 p.)
Ok, dziękuję za zwrócenie uwagi ; )
+1 głos
odpowiedź 23 lutego 2017 przez juras94 Początkujący (440 p.)
Spróbuj: nazwa.c_str()

Podobne pytania

0 głosów
1 odpowiedź 1,497 wizyt
pytanie zadane 11 września 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 693 wizyt

93,695 zapytań

142,612 odpowiedzi

323,223 komentarzy

63,225 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...