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

Co poszło nie tak ?

HackNation - ogólnopolski hackathon
+1 głos
1,043 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,970 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,970 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,970 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,970 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 4,573 wizyt
pytanie zadane 14 sierpnia 2016 w Offtop przez QizmoPL Stary wyjadacz (11,440 p.)
+46 głosów
19 odpowiedzi 18,246 wizyt
+13 głosów
12 odpowiedzi 8,001 wizyt
pytanie zadane 25 października 2017 w Offtop przez niezalogowany

93,627 zapytań

142,551 odpowiedzi

323,050 komentarzy

63,132 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1694p. - dia-Chann
  2. 1676p. - DziarnowskiJ
  3. 1650p. - Łukasz Piwowar
  4. 1640p. - CC PL
  5. 1607p. - raydeal
  6. 1602p. - Adrian Wieprzkowicz
  7. 1588p. - Tomasz Bielak
  8. 1521p. - Michal Drewniak
  9. 1503p. - Maurycy W
  10. 1360p. - rafalszastok
  11. 1335p. - robwarsz
  12. 1269p. - Rafał Trójniak
  13. 1257p. - ssynowiec
  14. 1208p. - Mariusz Fornal
  15. 1116p. - rucin93
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...