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

Odczyt z pliku w code blocks, jak podać prawidłową ścieżkę do pliku znajdującego się w innym folderze niż program?

VPS Starter Arubacloud
+1 głos
3,001 wizyt
pytanie zadane 8 lutego 2017 w C i C++ przez niedoszlyProgramista Nowicjusz (130 p.)

Witam !
Mam problem, gdyż w trakcie kursy C++ na odcinku 7(zapis i odczyt pilku) się zatrzymałem, bo mam bład i nie wiem jak go rozwiązać.
Chodzi o ścieżkę do pliku "Wizytowka.txt". Plik ten znajduje się w tym samym miejscu co program odpowiedzialny za odczyt z pliku.
Kod:

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

string imie, nazwisko;
int nr_telefonu;

int main()
{
    fstream plik;
    plik.open("C:\\ Wizytowka.txt", ios::in); 

    if(plik.good()==false);
    {
        cout<<"Plik nie istnieje!";
        exit(0);
    }

    string linia;
    int nr_linii=1;

    while(getline(plik, linia))
    {
        switch(nr_linii)
        {
            case 1: imie = linia;
                break;
            case 2: nazwisko = linia;
                break;
            case 3: nr_telefonu = atoi(linia.c_str());
                break;
        }
        nr_linii++;
    }
    plik.close();

    cout<<imie<<endl;
    cout<<nazwisko<<endl;
    cout<<nr_telefonu<<endl;


    return 0;
}

Dziękuje za ewentualną pomoc! 

komentarz 8 lutego 2017 przez Patrycjerz Mędrzec (192,340 p.)
Ta spacja po ukośniku nie powoduje problemu?
komentarz 8 lutego 2017 przez niedoszlyProgramista Nowicjusz (130 p.)

Usunąłem spacje i dalej był problem potem C:\\ i cały czas nie wykrywa pliku, linijka wygląda tak:

plik.open("Wizytowka.txt", ios::in);

 

2 odpowiedzi

0 głosów
odpowiedź 8 lutego 2017 przez niezalogowany
Jeżeli jest w tym samym miejscu co plik wykonywalny, to ścieżka powinna wyglądać tak: "Wizytowka.txt", bez tego C:\\
komentarz 8 lutego 2017 przez niedoszlyProgramista Nowicjusz (130 p.)

Usunąłem C\\ i linijka wygląda tak :

plik.open("Wizytowka.txt", ios::in);

Niestety dalej nie wykrywa mi tego pliku :/

komentarz 8 lutego 2017 przez niezalogowany
Jesteś pewien że plik wykonywalny (exe) i plik tekstowy są dokładnie w tym samym folderze?
komentarz 8 lutego 2017 przez niezalogowany

Masz jeszcze niepotrzebny średnik tutaj:

if(plik.good()==false);

 

komentarz 8 lutego 2017 przez niezalogowany
Średnik przerywa połączenie pomiędzy if'em a jego klamrami {...} . Tzn warunek jest sprawdzany, ale wszystko po tym średniku jest traktowane jako dalszy niezwiązany kod z tym ifem. Czyli od razu zawsze było przejście do cout i exita...
komentarz 8 lutego 2017 przez niedoszlyProgramista Nowicjusz (130 p.)

Pomogło! Dzięki wielkie, męczyłem się z tym kodem 2 dni przez jeden średnik... Dzięki! 
A jakby ten plik "Wizytowka" był w innym folderze np. na pulpicie to ścieżka do niego jakby wyglądała? 

plik.open("C:\Users\Admin\Desktop\Wizytowka.txt", ios::in);

tak ?

komentarz 8 lutego 2017 przez niezalogowany
edycja 9 lutego 2017
Prawie tak tylko zamiast "\" daj "\\". Te slash'e mają dodatkowe funkcje w c++ patrz nowa linia, tabulacja (\n, \t) etc.
komentarz 8 lutego 2017 przez niedoszlyProgramista Nowicjusz (130 p.)
Dzięki !
0 głosów
odpowiedź 8 lutego 2017 przez krispello Obywatel (1,440 p.)
Dokładnie,usuń spacje (odstęp) po ukośniku.

Podobne pytania

0 głosów
1 odpowiedź 503 wizyt
pytanie zadane 7 grudnia 2018 w C i C++ przez matiibal Użytkownik (620 p.)
0 głosów
1 odpowiedź 152 wizyt
pytanie zadane 27 lutego 2019 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 1,298 wizyt
pytanie zadane 1 stycznia 2019 w C i C++ przez nooblike Nowicjusz (120 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 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!

...