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

Nie mogę otworzyć pliku txt w cpp

Object Storage Arubacloud
0 głosów
1,724 wizyt
pytanie zadane 19 grudnia 2017 w C i C++ przez chacken Użytkownik (820 p.)

Sprawa wyglada smiesznie bo caly projekt napisalem w chwile... ale dzialalem na danych niewczytywanych z pliku... Teraz gdy juz wszystko ogarnalem nadszedl czas na to zeby jednak te dane pobrac z pliku... i tutaj pojawia sie problem którego nie moge rozwiazac... ehhh. Ponizej kod z mojego projektu w którym to wybieram nazwe pliku i próbuje ja otworzyc:
 

vector<string> read_from_file() {
    vector<string> lines;
    fstream data_file;
    string single_line;
    fstream f;
    string path = "data.txt";

    data_file.open(path, fstream::in);

    if (data_file.is_open()) {
        while (!data_file.eof()) {
            getline(data_file, single_line);
            lines.push_back(single_line);
        }
        data_file.close();
    }
    else{//ten else nie powienien sie nigdy wykonac, bo gdy podanego pliku nie ma takowy sie tworzy
        cout << "Blad w otwarciu pliku wejsciowego, sprawdz, czy plik o podanej nazwie istnieje";
        exit(0);
    }

    //symulacja dodania lini z pliku:
//    lines.push_back("K: Jerzy Grebosz, Marcin Wiera, Lukasz Bukasz, Jerzy Wierzy. Super dobry tytul.");
    return lines;
}

I nie mam pojecia dlaczego... ale zawsze w tym if'ie sprawdzajacym czy powiodlo sie otwieranie pliku leci else ze sie nie powiodlo, próbowalem róznymi metodami .good() .fail() .is_open() jak powyzej i niezaleznie od tego która metoda zawsze leci ze nie da sie otworzyc. 

Plik normalnie znajduje sie w folderze z main.cpp, nazywa sie dokladnie jak powyzej tj. data.txt. Próbowalem go tez otworzyc dokladna sciezka... //data.txt, ./data.txt i nic nie lapie. Próbowalem poprostu na zywca wpisac "data.txt" tez nic... ;/

Pisze na win 10 w CLion. Jakies sugestie? bo wiecej stracilem czasu na szukanie tego jak otworzyc plik niz na napisanie calego projektu...

Bede wdzieczny za pomoc ;)

komentarz 19 grudnia 2017 przez Milesq Nałogowiec (32,020 p.)

spróbuj przepuścić, zmienną path przez .c_str()

 

    


    data_file.open(path.c_str(), fstream::in);

 

komentarz 19 grudnia 2017 przez niezalogowany

U mnie działa. Wrzuć dane.txt do folderu z plikiem .exe (debug). Jak nie pomoże możesz spróbować wrzucić do wszystkich możliwych folderów devil

1 odpowiedź

0 głosów
odpowiedź 19 grudnia 2017 przez Rafał Żygadło Nowicjusz (140 p.)
Cześć, sprawdź w jakim rzeczywiście jesteś katalogu po uruchomieniu programu.

#include <direct.h>

char buff[FILENAME_MAX];
_getcwd(buff, FILENAME_MAX);

Podobne pytania

0 głosów
1 odpowiedź 839 wizyt
pytanie zadane 19 czerwca 2020 w C i C++ przez tomek.99 Początkujący (370 p.)
0 głosów
1 odpowiedź 314 wizyt
0 głosów
1 odpowiedź 307 wizyt
pytanie zadane 10 maja 2021 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)

92,565 zapytań

141,416 odpowiedzi

319,598 komentarzy

61,950 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...