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

Bład przy próbie kompilacji: Access violation writing location 0xCCCCCCCC.

0 głosów
691 wizyt
pytanie zadane 12 stycznia 2017 w C i C++ przez Kyatt Początkujący (400 p.)
#include <iostream>
#include <fstream>
#include <conio.h>
#include <algorithm>
#include <string>

using namespace std;

int main()
{
	string odpA[5], odpB[5], odpC[5], odpD[5], pytanie[5], autor, tytul, poprawna[5];
	int punkty=0, nr_linii=1, nr_pytania=0;

	string odpowiedz;

	string linia;

	fstream plik;

	plik.open("dane.txt", ios::in);

	if(plik.good() == false)
	{
		cout << "Plik nie istnieje!\n";
		exit(0);
	}

		while(getline(plik, linia)){

		switch (nr_linii)
		{
		case 1: autor = linia;				  break;
		case 2: tytul = linia;				  break;
		case 3: pytanie[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[nr_pytania] = linia; break;
		default: cout << "Nothing in here!";  break;
		}

		nr_linii++;

		if(nr_linii == 8)
		{
			nr_linii = 3;
			nr_pytania++;
		}
	}

	plik.close();

	cout << autor << endl;
	cout << tytul << endl;

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

		cin >> odpowiedz;

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

		if(odpowiedz == poprawna[i])
		{
			cout << "Poprawna odpowiedz!" << endl;
			punkty++;
		}
		else
		{
			cout << "Zla odpowiedz!" << endl;
			cout << "Poprawna odpowiedz: " << poprawna[i] << endl;
		}

		cin.clear();
		cin.ignore(1000, '\n');

		getchar();
		system("cls");
	}

	cout << "Zdobyles " << punkty << "/5 punktow!" << endl;

	getchar();

	return 0;
}

Przy próbie skompilowania wywala mi taki oto błąd: Access violation writing location 0xCCCCCCCC. Jest to program zrobiony na podstawie 7 odcinku pana Mirosława Zelenta.

1 odpowiedź

+1 głos
odpowiedź 12 stycznia 2017 przez niezalogowany
wybrane 12 stycznia 2017 przez Kyatt
 
Najlepsza
Polecam albo użyć debuggera i samemu poszukać jeszcze błędu, albo przeanalizować na podstawie kodu z CR:

https://github.com/CodersCommunity/CodeReview-CPP-Podstawy/tree/refactor/odc-07
komentarz 12 stycznia 2017 przez Kyatt Początkujący (400 p.)
Okej znalazłem błąd. Przekraczałem tablice, switch nawet nie miał szansy zadziałać dla case 8 bo gdy nr_linii = 8 to od razu zmienia na nr_linii = 3 . ;)

Podobne pytania

0 głosów
1 odpowiedź 1,732 wizyt
pytanie zadane 13 sierpnia 2017 w C i C++ przez wojtekd09 Początkujący (260 p.)
0 głosów
1 odpowiedź 513 wizyt

93,741 zapytań

142,676 odpowiedzi

323,294 komentarzy

63,319 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...