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; }
93,774 zapytań
142,731 odpowiedzi
323,383 komentarzy
63,378 pasjonatów
Motyw:
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
Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.