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

Błąd w moim kodzie C++, którego nie umiem zobaczyć

Object Storage Arubacloud
0 głosów
268 wizyt
pytanie zadane 13 listopada 2017 w C i C++ przez F1DZ1 Nowicjusz (190 p.)

Witam, Zetknąłem się ostatnio z 7. częścią poradnika c++ MZ. Obejrzałem film, wykonałem wszystko sam po czym po kolei skrupulatnie sprawdzałem błędy ( nie mówię że jest idealnie), jednak po odpaleniu programu okazało się że pokazuje mi się tylko "treść" i "odpD". Wszystko było ok, bo po prostu myślałem że mam jakiś błąd w kodzie więc dla porównania pobrałem wersje Pana M.Z. Po odpaleniu jej okazało się że ona też nie działa. Koniec końców jestem w punkcie wyjścia więc odzywam się do was internauci i proszę o pomoc. 

Podsumowując: Błedęm jest to że nie wyświetlają mi się odpowiedzi, tytuł i imię.

 #include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <stdio.h>


using namespace std;
string temat, nick;
string tresc[5];
string odpA[5], odpB[5], odpC[5], odpD[5];
string poprawna[5];
int nr_linii = 1;
string linia;
int nr_pytania=0;
int punkty=0;
string odpowiedz;

int main()
{
    fstream plik;
    plik.open("quiz.txt", ios::in);
    if(plik.good()==false)
    {
        cerr<<"ERROR - Brak 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: odpA[nr_pytania]=linia;     break;
           case 6: odpA[nr_pytania]=linia;     break;
           case 7: odpA[nr_pytania]=linia;     break;
           case 8: poprawna[nr_pytania]=linia; break;
        }
        if(nr_linii==8)
        {
            nr_linii=2;
            nr_pytania++;
        }

        nr_linii++;

    }
    plik.close();
    plik.clear();

    for(int i=0; i<10; 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<<"Brawo, zdobywasz punkt!"<<endl;
            punkty++;
        }
        else cout<<"Zle! nie zdobywasz punktu. Poprawna odpowiedz: "<<poprawna[i]<<endl;



    }

    cout<<"Koniec quizu! Posiadasz "<<punkty<<" punkty!";

    getchar();getchar();
    return 0;
}

Tu załączam notatnik podłączony do kodu.

Programowanie w C++
XYZ
Typ zmiennych o nazwie float przechowuje:
liczby calkowite
napisy
liczby zmiennoprzecinkowe
pojedyncze znaki
c
Wstrzymanie wykonania programu na czas 2 sekund uzyskasz instrukcja:
Wait(2000)
Stop(2000)
Delay(2000)
Sleep(2000)
d
Ktora deklaracja jest zapisana poprawnie?
int x;
integer x;
x:integer;
x=integer;
a
Z jakiego przedzialu zostanie wylosowana liczba: rand()%10+2
0..9
2..9
2..11
0..11
c
Ile razy wykona sie petla: for (int i=4; i>=-2; i--)
ani razu
nieskonczenie wiele razy
6
7
d

 

komentarz 13 listopada 2017 przez 10kw10 Pasjonat (22,880 p.)
Jak pobierasz z pliku to wszedzie masz odpA
komentarz 13 listopada 2017 przez F1DZ1 Nowicjusz (190 p.)
Nie rozumiem do końca, bo nie jestem w tym dobry, więc czy mógł byś bardziej sprecyzować odpowiedz
komentarz 13 listopada 2017 przez 10kw10 Pasjonat (22,880 p.)
Tak średnio bo jestem na telefonie. Zobacz na linie 36-39
komentarz 13 listopada 2017 przez DragonCoder Nałogowiec (36,500 p.)
           case 4: odpA[nr_pytania]=linia;     break;
           case 5: odpA[nr_pytania]=linia;     break;
           case 6: odpA[nr_pytania]=linia;     break;
           case 7: odpA[nr_pytania]=linia;     break;

To to samo, nie zauwazyles?

1 odpowiedź

0 głosów
odpowiedź 14 listopada 2017 przez obl Maniak (51,280 p.)

DragonCoder już ci odpowiedział:

           case 4: odpA[nr_pytania]=linia;     break;
           case 5: odpA[nr_pytania]=linia;     break;
           case 6: odpA[nr_pytania]=linia;     break;
           case 7: odpA[nr_pytania]=linia;     break;

Wczytujesz odpowiedzi cały czas do zmiennej odpA, nie inicjalizujesz tablic odpB, odpC, odpD dodatkowo wczytując tak dane nadpisujesz informacje zapisane wcześniej w tablicy odpA ostatnią dostępną odpowiedzią D.

Podobne pytania

0 głosów
3 odpowiedzi 878 wizyt
+1 głos
1 odpowiedź 519 wizyt
pytanie zadane 28 lipca 2021 w Java przez nowawtowarzystwie Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 417 wizyt
pytanie zadane 13 listopada 2017 w C i C++ przez F1DZ1 Nowicjusz (190 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

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

...