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

Odczytywanie z pliku tekstowego. C++

VPS Starter Arubacloud
0 głosów
786 wizyt
pytanie zadane 23 października 2017 w C i C++ przez kris6700 Początkujący (260 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 (192,340 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 Początkujący (260 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 (192,340 p.)
Gdzie dokładnie znajduje się plik? Z jakiego środowiska programistycznego korzystasz?
komentarz 23 października 2017 przez kris6700 Początkujący (260 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 (192,340 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 Początkujący (260 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 Początkujący (260 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 Maniak (51,280 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 2018 przez AgaLuk Nowicjusz (210 p.)
przywrócone 5 lutego 2018 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 781 wizyt
pytanie zadane 5 listopada 2017 w Java przez Akiro Bywalec (2,910 p.)
0 głosów
1 odpowiedź 124 wizyt
pytanie zadane 10 stycznia 2017 w C i C++ przez kroliczysyn Początkujący (390 p.)
0 głosów
0 odpowiedzi 185 wizyt
pytanie zadane 17 sierpnia 2023 w C i C++ przez Zuzan Początkujący (390 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

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

...