Problem z odczytem pliku txt

Problem z odczytem pliku txt
Wayne
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:31
0

Witam, najprościej mówiąc napisałem cały ten kod, który w sumie ma za zadanie odczytanie z pliku txt quizu (pytan,odpowiedzi oraz odpowiedzi poprawnej), zapisanie ich do tablic i w tym tkwi problem, bo nie mam pojęcia co robię źle. Fragment kodu dotyczący problemu podaje niżej. A treść samego problemu jest następująca -> Zgłoszono wyjątek: naruszenie dostępu do zapisu. _Left było 0xCCCCCCCC. Dodatkowo, gdy wywala mi ten błąd MVS wywala mnie do pliku xstring i pokazuje błąd obok następującej funkcji ->

Kopiuj
static _CONSTEXPR17 void assign(_Elem& _Left, const _Elem& _Right) noexcept {
        _Left = _Right; (X)<-- tu jest znak błędu
    }

Kopiuj
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;



int main()
{
	fstream plik;
	fstream wynik;
	int nr_linii = 1;
	string linia;
	int przelacznik = 0;
	string odpA[5], odpB[5], odpC[5], odpD[5];
	string nazwauczestnika;
	string pytania[5];
	string poprawna[5];
	string odpowiedz;
	int punkty = 0;
	plik.open("quiz.txt", ios::in);
	while (getline(plik, linia))
	{
		switch (nr_linii)
		{
		case 1:
			pytania[przelacznik] = linia;
			break;
		case 2:
			odpA[przelacznik] = linia;
			break;
		case 3:
			odpB[przelacznik] = linia;
			break;
		case 4:
			odpC[przelacznik] = linia;
			break;
		case 5:
			odpD[przelacznik] = linia;
			break;
		case 6:
			poprawna[przelacznik] = linia;
			break;
		}
			if (nr_linii == 6)
			{
			nr_linii = 0;
			przelacznik++;
			}

		nr_linii++;

	}
	plik.close();
edytowany 3x, ostatnio: Wayne
enedil
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 8 godzin
  • Postów:1027
2

Winna jest ta linijka:

Kopiuj
if (nr_linii == 6)

(oraz oczywiście ta tragiczna jakość kodu)

edytowany 1x, ostatnio: enedil
Zobacz pozostałe 2 komentarze
enedil
spisuję moje uwagi
Wayne
No to duzo mi to nie pomoglo, niby ta linia kodu jest potrzebna bo po 6 linii w pliku txt zaczyna sie nowe pytanie.
enedil
A wrzuć uprzejmie swój plik z danymi.
Wayne
Aktualnie pisze z telefonu i średnio mam jak wejść na komputer, ale przedstawie Ci jak to wygląda mniej więcej(numery to liczby linii) 1.Pytanie 2.OdpA 3.OdpB 4.OdpC 5.OdpD 6.Poprawna odpowiedz 7.Kolejne pytanie itd...
enedil
Niestety, bez konkretnego pliku myślę, że się nie obędzie.
Wayne
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:31
0

Dobra, problem został rozwiązany.

enedil
I z czego się wziął?
Wayne
@enedil: Problem był z plikiem tekstowym, a mianowicie nie wiem dlaczego tak było, ale jakby program sie wysypywal przez "puste linie", które były w tym pliku.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.