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

Pytania odnośnie kodu wczytywania z pliku

Object Storage Arubacloud
0 głosów
86 wizyt
pytanie zadane 25 lipca 2019 w C i C++ przez Yorweth Obywatel (1,310 p.)

Witam

Uczę się programowania z odcinkow autora forum i jedna rzecz spędziła mi sen z powiek.

Otóż w tym kodzie rozumiem wszystko poza tym skąd program wie która odpowiedź jest poprawna, w case 8 gdzie jest poprawna odpowiedz daliśmy nr_pytania a nie odpowiedź, gdzie w całym kodzie jest oznaczone że poprawna to właśnie linia.

Proszę czy ktoś mógłby mi wyjaśnić 


#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<<"Nie udalo sie otworzyc pliku!";
        exit(0);
    }
 
    while(getline(plik,linia))
    {
        switch(nr_linii)
        {
            case 1: temat=linia;                     break;
            case 2: nick=linia;                      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[nr_pytania] = 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[i]<<endl;
        cout<<"B. "<<odpB[i]<<endl;
        cout<<"C. "<<odpC[i]<<endl;
        cout<<"D. "<<odpD[i]<<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<<"Koniec quizu. Zdobyte punkty: "<<punkty;
 
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 25 lipca 2019 przez Rzepek Bywalec (2,050 p.)

skąd program wie która odpowiedź jest poprawna

No przecież wczytuje to do zmiennej

case 8: poprawna[nr_pytania] = linia;    break;

 w case 8 gdzie jest poprawna odpowiedz daliśmy nr_pytania a nie odpowiedź, gdzie w całym kodzie jest oznaczone że poprawna to właśnie linia.

 Nie zabardzo rozumiem tego co napisałeś, ale zmienne odpA .... odpD i poprawna są tablicami o rozmiarze 5, i tak samo jak wczytujesz 

 case 7: odpD[nr_pytania] = linia;        break;

to tak samo

case 8: poprawna[nr_pytania] = linia;    break;

i zmienna poprawna[3] przechowuje odpowiedź dla treść[3] do której są odpowiedzi w odpA[3] .... odpD[3]

 

Niewiem zupełnie czy to tego nie rozumiałeś czy czegoś innego bo strasznie ciężko mi zrozumieć to co napisałeś.

Podobne pytania

0 głosów
3 odpowiedzi 293 wizyt
pytanie zadane 11 maja 2019 w C i C++ przez Marak123 Stary wyjadacz (11,190 p.)
0 głosów
1 odpowiedź 183 wizyt
pytanie zadane 12 września 2021 w Java przez Kalindoreks Użytkownik (620 p.)
0 głosów
1 odpowiedź 122 wizyt
pytanie zadane 5 sierpnia 2020 w Python przez Marak123 Stary wyjadacz (11,190 p.)

92,556 zapytań

141,404 odpowiedzi

319,562 komentarzy

61,942 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!

...