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

Błąd niewykrywalny ludzkim okiem

Object Storage Arubacloud
–1 głos
155 wizyt
pytanie zadane 8 stycznia 2020 w C i C++ przez Nabuchadonozor Gaduła (3,120 p.)

Witam wszystkie dobre duszyczki cieplutko, 

mam pewien problem, którym chciałbym się podzielić z Waszymi wydajniejszymi głowami. Otóż poniżej znajduje się kod z odc. 7 (plik tekstowy), jest napisany wręcz idealnie, ale od godziny szukam jakiegokolwiek błędu i nic nie mogę znaleźć, nawet podmieniałem kod miejscami, żeby sprawdzić, o który fragment chodzi, lecz to na próżno...

Liczę, że któryś z Was, ma lepszy wzrok niż ja i żywiłby chęć niesienia pomocy. Błąd pokazuje jako w 60 wersie z opisem - "no match for 'operator>>', jednakże jest to absolutnie niemożliwe.

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>

using namespace std;

string temat, nick;
string tresc[5];
string A[5], B[5], C[5], D[5];
string odpowiedz[5], poprawna[5];
int punkty=0;

int main()
{
    fstream file;
    file.open("quiz.txt", ios::in);
    if(file.good()==false)
    {
        cout << "Nie ma takiego programu";
        exit(0);
    }

    int nrlinii=1;
    string linia;
    int nrpyt=0;

    while(getline(file, linia))
    {
        switch(nrlinii)
        {
            case 1: temat = linia; break;
            case 2: nick = linia; break;
            case 3: tresc[nrpyt] = linia; break;
            case 4: A[nrpyt] = linia; break;
            case 5: B[nrpyt] = linia; break;
            case 6: C[nrpyt] = linia; break;
            case 7: D[nrpyt] = linia; break;
            case 8: poprawna[nrpyt] = linia; break;
        }
        if(nrlinii==8)
        {
            nrlinii=2;
            nrpyt++;
        }
    nrlinii++;
    }
    file.close();

    for (int i=0; i<=4; i++)
    {
        cout << endl << tresc[i] << endl;
        cout << "A. " << A[i] << endl;
        cout << "B. " << B[i] << endl;
        cout << "C. " << C[i] << endl;
        cout << "D. " << D[i] << endl;

        cout << endl << "Twoja odpowiedz: ";
        cin >> odpowiedz;

        if(odpowiedz==poprawna[i])
        {
            cout << "Brawo! Otrzymales jeden punkt!" << endl;
            punkty++;
        }
        else cout << "Zle! Brak otrzymanych punktow. Odpowiedz poprawna to " << poprawna[i]<<endl;
    }

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

    cout << "Koniec quizu! Suma otrzymanych punktow wynosi: " << punkty << endl;




    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 8 stycznia 2020 przez DawidK Nałogowiec (37,910 p.)

u Ciebie zmienna odpowiedź jest tablicą stringów:

string odpowiedz[5], poprawna[5];

nie stringiem

cin >> odpowiedz;

 

komentarz 8 stycznia 2020 przez Nabuchadonozor Gaduła (3,120 p.)
Dziękuje z całego serducha!

To chyba przez to, że ostatnio tak mało śpie, bo ostro się wciągnąłem w programowanie, zbyt rozkojarzony jestem. Jeszcze raz, wielkie dzięki!
komentarz 8 stycznia 2020 przez mrspock1 Mądrala (6,420 p.)
Będziesz miał wiele tego rodzaju błędów w przyszłości trudno wykrywalnych w czasie wykonania. Pascal by go zidentyfikował natychmiast w czasie kompilacji.
komentarz 8 stycznia 2020 przez gagyn Stary wyjadacz (11,050 p.)
Tylko, że pascala już prawie nikt nie używa i raczej nikt nie zaleca uczenia się.

Podobne pytania

0 głosów
0 odpowiedzi 184 wizyt
pytanie zadane 30 stycznia w PHP przez whiteman808 Obywatel (1,930 p.)
0 głosów
4 odpowiedzi 450 wizyt
pytanie zadane 23 października 2018 w Java przez niezalogowany
0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 22 kwietnia 2021 w Sprzęt komputerowy przez Kaion Nowicjusz (140 p.)

92,661 zapytań

141,554 odpowiedzi

319,995 komentarzy

62,028 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...