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

Biblioteka fstream c++

VPS Starter Arubacloud
0 głosów
360 wizyt
pytanie zadane 23 lutego 2017 w C i C++ przez Milesq 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 Milesq
 
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,373 wizyt
pytanie zadane 11 września 2015 w C i C++ przez 0xf Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 534 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...