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

question-closed Operacje na plikach

VPS Starter Arubacloud
0 głosów
151 wizyt
pytanie zadane 13 października 2015 w C i C++ przez Koszmar Początkujący (290 p.)
zamknięte 13 października 2015 przez Eryk Andrzejewski

Witam, Chce stworzyc plik o nazwie podanej przez uzytkownika. Kod, ktory napisalem wyglada tak: 

cin>>zmienna
zmienna+=".txt"
Fstream plik; 
plik.open(zmienna, ios::out)
 plik.close

Jednak to nie dziala nie do konca wiem dlaczego, bede niezwykle wdzieczny jezeli ktos da mi odpowiednia wskazowke lub odpowiednio podlinkuje. Z gory bardz dziekuje :))

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+4 głosów
odpowiedź 13 października 2015 przez Radfler VIP (101,030 p.)
wybrane 13 października 2015 przez Eryk Andrzejewski
 
Najlepsza

To może tak:

1. Fstream z małej litery: std::fstream,

2. Dodaj nawiasy przy plik.close(),

3. Ja bym zrobił to po prostu tak:

std::string nazwa;
std::cin >> nazwa;
std::ofstream(nazwa + ".txt");
komentarz 13 października 2015 przez Koszmar Początkujący (290 p.)
Fstream z duzej i brak nawiasow to moj blad jedynie w komentarzu(zasluga telefonu). Zaraz sprawdze czy mi to zadzial, tak czy inaczej dziekuje za poswiecony czas. Jezeli bylbys jeszcze tak uprzejmy mi powiedziec dlaczego std::ofstream a nie std::fstream?
komentarz 13 października 2015 przez Radfler VIP (101,030 p.)
Tak też myślałem ;) a ofstream, dlatego że ten strumień służy tylko do pisania w pliku (nie ma możliwości czytania).
komentarz 13 października 2015 przez Koszmar Początkujący (290 p.)
Niestety nie dziala, jest ten sam blad co przy moim kodzie "error: no matching function for call to 'std::basic_ofstream::basic_ofstream(std::basic_string' "
komentarz 13 października 2015 przez Radfler VIP (101,030 p.)

Trzeba było od razu powiedzieć jaki błąd! Masz stary standard C++03, więc musisz przekonwertować std::string na const char*:

std::string nazwa;
std::cin >> nazwa;
std::ofstream((nazwa + ".txt").c_str());
komentarz 13 października 2015 przez Koszmar Początkujący (290 p.)
Tak! Dziala!! Dziekuje Ci bardzo za wiedze ktora mnie obdarzyles. Masz u mnie przyslowiowe piwo. :))
komentarz 13 października 2015 przez Radfler VIP (101,030 p.)
Zamiast piwa mógłbyś przycisnąć takiego zielonego ptaszka, oznaczającego najlepszą odpowiedź! :)
komentarz 13 października 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Już to za niego zrobiłem :)

Podobne pytania

+1 głos
1 odpowiedź 1,427 wizyt
pytanie zadane 6 września 2020 w JavaScript przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
1 odpowiedź 132 wizyt
pytanie zadane 17 maja 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)
0 głosów
1 odpowiedź 151 wizyt
pytanie zadane 11 maja 2020 w C i C++ przez cba Użytkownik (620 p.)

92,977 zapytań

141,940 odpowiedzi

321,182 komentarzy

62,303 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...