Witam,
mam pytanie dlaczego porgram nie może wczytac mojego pliku?
Sprawdziłem czy plik znajduje sie w moim folderze z projektem, roszerzenie oraz nazwe.
Wysłałem obrazek po to żeby było widać umieszczenie dodatkowych plików żeby sprawdzić czy tam jest wszystko poprawnie.
#include <iostream> #include "pytanie.h" #include <stdio.h> using namespace std; int main() { Pytanie p1; p1.nr_pytania = 1; p1.wczytaj(); p1.zadaj(); p1.sprawdz(); cout << "Koniec quizu. Punkty: " << p1.punkt; return 0; }
#include <iostream> using namespace std; class Pytanie { public: string tresc; string a, b, c, d; int nr_pytania; string poprawna; string odpowiedz; int punkt; void wczytaj(); void zadaj(); void sprawdz(); };
#include <iostream> #include "pytanie.h" #include <fstream> #include <cstdlib> #include <string> using namespace std; void Pytanie::wczytaj() //operator zasięgu { fstream plik; plik.open("quiz.txt", ios::in); if (plik.good() == false) { cout << "Nie udało się otworzyć pliku."; exit(0); } int nr_linii = (nr_pytania - 1) * 6 + 1; int aktualny_nr = 1; string linia; while (getline(plik, linia)) { if (aktualny_nr == nr_linii) tresc = linia; if (aktualny_nr == nr_linii+1) a = linia; if (aktualny_nr == nr_linii+2) b = linia; if (aktualny_nr == nr_linii+3) c = linia; if (aktualny_nr == nr_linii+4) d = linia; if (aktualny_nr == nr_linii+5) poprawna = linia; aktualny_nr++; } plik.close(); } void Pytanie::zadaj() { cout << endl << tresc << endl; cout << a << endl; cout << b << endl; cout << c << endl; cout << d << endl; cout << "------------------------------" << endl; cout << endl << "Odpowiedz: "; cin >> odpowiedz; } void Pytanie::sprawdz() { if (odpowiedz == poprawna) { punkt = 1; } else punkt = 0; }
spróbuj podać bezwzględną ścieżkę do tego pliku.
plik.open("quiz.txt", ios::in); // Pamiętaj aby używać \\ . Zamień na : plik.open("C:\\JakisFolder\\quiz.txt", ios::in);
Spróbuj wszystko wrzucić do jednego pliku main.cpp. Jak zadziała to znaczy że masz problem z podłączeniem plików do projektu. U mnie plik wczytał się prawidłowo.
#include <iostream> #include <fstream> #include <cstdlib> #include <string> using namespace std; class Pytanie { public: string tresc; string a, b, c, d; int nr_pytania; string poprawna; string odpowiedz; int punkt; void wczytaj(); void zadaj(); void sprawdz(); }; void Pytanie::wczytaj() //operator zasięgu { fstream plik; plik.open("quiz.txt", ios::in); if (plik.good() == false) { cout << "Nie udało się otworzyć pliku."; exit(0); } int nr_linii = (nr_pytania - 1) * 6 + 1; int aktualny_nr = 1; string linia; while (getline(plik, linia)) { if (aktualny_nr == nr_linii) tresc = linia; if (aktualny_nr == nr_linii+1) a = linia; if (aktualny_nr == nr_linii+2) b = linia; if (aktualny_nr == nr_linii+3) c = linia; if (aktualny_nr == nr_linii+4) d = linia; if (aktualny_nr == nr_linii+5) poprawna = linia; aktualny_nr++; } plik.close(); } void Pytanie::zadaj() { cout << endl << tresc << endl; cout << a << endl; cout << b << endl; cout << c << endl; cout << d << endl; cout << "------------------------------" << endl; cout << endl << "Odpowiedz: "; cin >> odpowiedz; } void Pytanie::sprawdz() { if (odpowiedz == poprawna) { punkt = 1; } else punkt = 0; } int main(int argc,char* argv[]) { Pytanie p1; p1.nr_pytania = 1; p1.wczytaj(); p1.zadaj(); p1.sprawdz(); cout << "Koniec quizu. Punkty: " << p1.punkt; return 0; }
93,632 zapytań
142,558 odpowiedzi
323,058 komentarzy
63,141 pasjonatów
Top 15 użytkownikó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