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

Co poszło nie tak ?

Object Storage Arubacloud
+1 głos
456 wizyt
pytanie zadane 3 lipca 2016 w C i C++ przez DedenN Początkujący (400 p.)
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
string nazwisko, imie;
int nr_tel;
int main()
{

    fstream plik;
    plik.open("wizytowka",ios::in );
    if (plik.good()==false)
    {
        cout<<"cos poszlo nie tak";
        exit(0);
    }
    string linia;
    int nr_lini=1;
      while    (getline(plik,linia))
      {
         switch(nr_lini)
         {
             case 1 :imie=linia ;break;
             case 2 :nazwisko=linia; break;
             case 3 :nr_tel=atoi(linia.c_str()); break;
         }

         nr_lini++;
      }
    cout<<imie<<endl;
    cout<<nazwisko<<endl;
    cout<<nr_tel<<endl;
    plik.close();

    return 0;
}

Po naciśnięciu f9 pokazuje że coś poszło nie tak. Jak to zinterpretować i gdzie szukać błędu ? ;)

2 odpowiedzi

+1 głos
odpowiedź 3 lipca 2016 przez Szahid Pasjonat (20,930 p.)
wybrane 4 lipca 2016 przez DedenN
 
Najlepsza
Napisz nazwę pliku z rozszerzeniem czyli plik.open ("wizytowka.txt", ios::in); Jak nie pomoże to sprawdź czy plik ktòry chcesz otworzyć w ogóle istnieje. Być może jest literówka albo plik ma w nazwie Ò o Ty piszesz O Pamiętaj że plik ktòry otwierasz ma być w KATALOGU ROBOCZYM programu. Umieść go tam a jeśli nie chcesz tego robić to podaj dokładną ścieżkę do niego. Poniżej wkleje Ci link do strony gdzie masz napisane co i jak http://cpp0x.pl/kursy/Kurs-C++/Poziom-4/Podstawy-obslugi-plikow/355 Tam masz napisane o ścieżce względnej i bezwzględnej
komentarz 4 lipca 2016 przez Szahid Pasjonat (20,930 p.)
Z tymi backslashami to kolega ma rację. Jeżeli do pliku dołączyłeś bibliotekę fstream to powinno działać plik.is_open ()
komentarz 4 lipca 2016 przez DedenN Początkujący (400 p.)

Tak ? bo teraz wyskakuje błąd ;(

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
string nazwisko, imie;
int nr_tel;
int main()
{

    fstream plik;
    plik.is_open("D:\\projekty\\zapisywanie\\wizytowka.txt",ios::in );
    if (is_open()==false)
    {
        cout<<"cos poszlo nie tak";
        exit(0);
    }
    string linia;
    int nr_lini=1;
      while    (getline(plik,linia))
      {
         switch(nr_lini)
         {
             case 1 :imie=linia ;break;
             case 2 :nazwisko=linia; break;
             case 3 :nr_tel=atoi(linia.c_str()); break;
         }

         nr_lini++;
      }
    cout<<imie<<endl;
    cout<<nazwisko<<endl;
    cout<<nr_tel<<endl;
    plik.close();

    return 0;
}

 

komentarz 4 lipca 2016 przez Szahid Pasjonat (20,930 p.)
W 12 linii ma być plik.open ( bla bla) is_open () to metoda sprawdzające czy plik został otwarty W 13 linij przed is_open () musisz dodać jeszcze plik.
komentarz 4 lipca 2016 przez DedenN Początkujący (400 p.)
Dobra wielkie dzięki za poświęcony czas, podaj sie i przejdę po prostu dalej jak nie ma błędu w kodzie bo im więcej mieszam tym więcej błędów wyskakuje :)
komentarz 4 lipca 2016 przez Szahid Pasjonat (20,930 p.)
To jest poprawny kod. Jeśli on nie działa opcje są tylko dwie. Albo pod tym adresem taki plik nie istnieje albo nie masz uprawnień do odczytu. Powodzenia w dalszej nauce :) #include #include #include using namespace std; string nazwisko, imie; int nr_tel; int main() { fstream plik; plik.open("D:\\projekty\\zapisywanie\\wizytowka.txt",ios::in ); if (plik.is_open()==false) { cout<<"cos poszlo nie tak"; exit(0); } string linia; int nr_lini=1; while (getline(plik,linia)) { switch(nr_lini) { case 1 :imie=linia ;break; case 2 :nazwisko=linia; break; case 3 :nr_tel=atoi(linia.c_str()); break; } nr_lini++; } cout<<imie<<endl; cout<<nazwisko<<endl; cout<<nr_tel<<endl; plik.close(); return 0; }
0 głosów
odpowiedź 3 lipca 2016 przez Fenix Nałogowiec (26,750 p.)
Nie masz rozszerzenia pliku przy plik,open(), przez co nie znajduje tego pliku. Ustaw rozszerzenie i powinno być ok.
komentarz 3 lipca 2016 przez DedenN Początkujący (400 p.)
dalej coś poszło nie tak :)
komentarz 3 lipca 2016 przez Fenix Nałogowiec (26,750 p.)
A jakiego systemu operacyjnego używasz ? Możesz nie posiadać dostępu do pliku.
komentarz 3 lipca 2016 przez DedenN Początkujący (400 p.)
Windows 7

Podobne pytania

+5 głosów
4 odpowiedzi 3,599 wizyt
pytanie zadane 14 sierpnia 2016 w Offtop przez QizmoPL Stary wyjadacz (11,440 p.)
+46 głosów
19 odpowiedzi 13,441 wizyt
+13 głosów
12 odpowiedzi 6,139 wizyt
pytanie zadane 25 października 2017 w Offtop przez niezalogowany

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 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!

...