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

Odczytywanie z pliku tekstowego. C++

0 głosów
201 wizyt
pytanie zadane 23 października 2017 w C i C++ przez kris6700 Nowicjusz (200 p.)
Cześć, mam problem z tym:

http://wklej.org/id/3276587/

Po kliknięciu F9, wyskakuje błąd: "Taki plik nie istnieje!" (oczywiście, to sformułowanie zostało zapisane gdzieś w if'ie.), mimo, że plik istnieje i mam do niego odpowiednie uprawnienia...:  https://imgur.com/a/2EPM8

3 odpowiedzi

0 głosów
odpowiedź 23 października 2017 przez Patrycjerz Mędrzec (175,480 p.)
Nazwa pliku musi posiadać rozszerzenie, np. wiz.txt.

PS W twoim kodzie brakuje jednego średnika, po deklaracji stringa. Nie mam więc pojęcia, jak skompilowałeś ten kod, ale cóż…
komentarz 23 października 2017 przez kris6700 Nowicjusz (200 p.)
Nazwa pliku posiadała rozszerzenie .txt, lecz usunąłem je, ponieważ próbowałem rozwiązać mój problem na wszystkie sposoby, a później zapomniałem go napisać ponownie. Po dodaniu średnika i rozszerzenia .txt, problem dalej występuje...
komentarz 23 października 2017 przez Patrycjerz Mędrzec (175,480 p.)
Gdzie dokładnie znajduje się plik? Z jakiego środowiska programistycznego korzystasz?
komentarz 23 października 2017 przez kris6700 Nowicjusz (200 p.)
Plik znajduje się w folderze, gdzie znajdują się inne pliki, typu: layout, depend itp. (nazwa tego pliku to"txt2")

Wcześniej znajdował się  w dokumentach, lecz go przeniosłem do pliku "txt2". Teraz w konsoli nie wyskakuje nic oprócz: Process returned 0 (0x0)   execution time : 0.063 s
Press any key to continue., który oznacza koniec programu...

Środowisko to Code::Blocks 16.01
komentarz 23 października 2017 przez Patrycjerz Mędrzec (175,480 p.)
Plik powinien się znajdować razem z plikami źródłowymi i plikiem projektu w jednym katalogu. Przynajmniej u mnie wtedy działa.
komentarz 23 października 2017 przez kris6700 Nowicjusz (200 p.)
Okey, już działa. Nie wiem, jak to się stało, bo po prostu wpisałem inne słowo w pliku tekstowym, a już zadziałało... W każdym razie, dzięki wszystkim!!! :)
komentarz 23 października 2017 przez kris6700 Nowicjusz (200 p.)
edycja 24 października 2017 przez kris6700
Tak w sumie, to chciałbym się jeszcze zapytać, o co chodzi tutaj:

http://wklej.org/id/3276951/

Tak wygląda plik tekstowy:

https://imgur.com/a/ezyFQ

Jak zrobić, aby w konsoli ukazały mi się obie linijki tekstu?

Póki co ukazuje mi się tylko druga (czyli te numerki).
0 głosów
odpowiedź 23 października 2017 przez janig9 Początkujący (260 p.)
https://pastebin.com/9aJxEeKA

Po wstawieniu średnika i dodaniu rozszerzenia działa.
0 głosów
odpowiedź 23 października 2017 przez obl Nałogowiec (43,160 p.)
Kod wygląda poprawnie (oprócz tego średnika) więc to coś z ścieżką do pliku jest nie tak. Jeżeli kompilujesz w VS to ścieżka domyślna nie jest w miejscu utworzenia programu. Dopiero jak uruchamiasz już wcześniej skompilowany program ta ścieżka jest ustawiona na lokalizację, w której program się znajduje. Z poziomu kompilatora ścieżka w VS jest inna.
komentarz 5 lutego przez AgaLuk Nowicjusz (190 p.)
przywrócone 5 lutego przez AgaLuk

Cześć,

Ja mam podobny problem. Pomimo, że wszystko wydaje się być w porządku, tylko w tym jednym programie nie chce się odczytać plik tekstowy. Obojętnie czy w nazwie jest .txt, czy nie ma pojawia mi się "Plik nie istnieje". Jeżeli mam nazwę "quiz", a w kodzie: plik.open("quiz.txt", ios::in ); to wtedy program się zawiesza. 

https://i.imgur.com/m4frxT6.png

Program robię z kursów M. Zelenta. Gdy ściągnełam jego kod działa bez problemowo, wcześniejsze ćwiczenie również działa. Możliwe, że źle stworzyłam plik, ale nie wiem jak inaczej go stworzyć. Skopiowałam nawet z plików M. Zelenta i wkleiłam tam swoje pytania i dalej nic... Nawet w akcie desperacji zainstalowałam NotepadC++ (Ale to też nic nie dało).  Próbowałam również włączyć i wyłączyć komputer ;)

Używam CodeBlocks, a plik tekstowy jest w folderze ze wszystkimi plikami do programu. 

Dzięki za pomoc :)  

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>


using namespace std;

string temat, nick;
string tresc [5];
string odpA[5], odpB[5], odpC[5], odpD[5];
string poprawna [5];
string odpowiedz;
int punkty=0;

int main()
{
    int nr_linii=1;
    string linia;
    int nr_pytania=0;

    fstream plik;
     plik.open("quiz.txt", ios::in );
     if(plik.good()==false)
     {
         cout<<"Plik nie istnieje!";
         exit(0);
    }

    while(getline(plik,linia))
    {
        switch(nr_linii)
        {
            case 1: temat;                  break;
            case 2: nick;                   break;
            case 3: tresc[nr_pytania] = linia;       break;
            case 4: odpA[nr_pytania] = linia;        break;
            case 5: odpB[nr_pytania] = linia;        break;
            case 6: odpC[nr_pytania] = linia;        break;
            case 7: odpD[nr_pytania]= linia;         break;
            case 8: poprawna; linia    ;    break;
        }
        if (nr_linii==8) {nr_linii=2; nr_pytania++;}

        nr_linii++;
    }
    plik.close();

    for (int i=0; i<=4;i++)
    {
        cout<<endl<<tresc[i]<<endl;
        cout<< "A. "<<odpA[1]<<endl;
        cout<< "B. "<<odpB[1]<<endl;
        cout<< "C. "<<odpC[1]<<endl;
        cout<< "D. "<<odpD[1]<<endl;

        cout<< "Twoja odpowiedz: ";
        cin>> odpowiedz;

        transform(odpowiedz.begin(),odpowiedz.end(),odpowiedz.begin(),::tolower);

        if (odpowiedz==poprawna[i])
        {
            cout<<"Dobrze! Zdobywasz punkt!"<< endl;
            punkty++;
           } else cout<< "Zle! Brak punktu! Poprawna odpowiedz " << poprawna[i]<< endl;

    }

    cout<< endl<< "KONIEC QUIZU! Zdobyte punkty: "<< punkty;
    return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 125 wizyt
pytanie zadane 5 listopada 2017 w Java przez Akiro Obywatel (1,080 p.)
0 głosów
1 odpowiedź 48 wizyt
pytanie zadane 10 stycznia 2017 w C i C++ przez kroliczysyn Początkujący (400 p.)
0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 12 maja 2017 w C i C++ przez AndekQR Użytkownik (780 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

53,012 zapytań

96,205 odpowiedzi

196,940 komentarzy

25,888 pasjonatów

Przeglądających: 284
Pasjonatów: 19 Gości: 265

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...