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

Co jest nie tak z tym kodem ?

VPS Starter Arubacloud
+1 głos
239 wizyt
pytanie zadane 25 czerwca 2015 w C i C++ przez Mleczko Początkujący (260 p.)

Gdy próbuje uruchomić program pojawia się błąd |error: expected unqualified-id before 'return'| oraz error: expected declaration before '}' token|

 

Błędy w linijce 62 i 73  

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

using namespace std;
string temat, nick;
string tresc [11];
string A[5],B[5],C[5],D[5];
string poprawna[11];
string odp;
int punkt=0;
int main()

{
    int nr_pytania = 0;
    int nr_linii=1;
    string linia;
    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:  A[nr_pytania] = linia;     break;
            case 5: B[nr_pytania] = linia;     break;
            case 6: C[nr_pytania] = linia;     break;
            case 7: D[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<=10; 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<<"Your answer: ";
cin>>odp;

transform(odp.begin(),odp.end(),odp.begin(), ::tolower);
if (odp==poprawna[i])
{
    cout<<"Nice work! You get one point!"<<endl;
    punkt++;
    else cout<<" Oooops, wrong answer! The good answer is: " <<poprawna[i]<<endl;
}
    }
    cout<<endl<<"End of quiz! Your points: "<<punkt;






    return 0;
}

 

3 odpowiedzi

+1 głos
odpowiedź 25 czerwca 2015 przez Dorion300 Szeryf (90,250 p.)

Else powinien być poza If'em

if (odp==poprawna[i])
        {
            cout<<"Nice work! You get one point!"<<endl;
            punkt++;
        }
        else cout<<" Oooops, wrong answer! The good answer is: " <<poprawna[i]<<endl;

 

komentarz 25 czerwca 2015 przez Mleczko Początkujący (260 p.)
Dziękuje serdecznie ;3
komentarz 25 czerwca 2015 przez niezalogowany
Kurde, byłeś szybszy :3
0 głosów
odpowiedź 25 czerwca 2015 przez niezalogowany
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <string>

using namespace std;
string temat, nick;
string tresc [11];
string A[5],B[5],C[5],D[5];
string poprawna[11];
string odp;
int punkt=0;
int main()

{
    int nr_pytania = 0;
    int nr_linii=1;
    string linia;
    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:
            A[nr_pytania] = linia;
            break;
        case 5:
            B[nr_pytania] = linia;
            break;
        case 6:
            C[nr_pytania] = linia;
            break;
        case 7:
            D[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<=10; 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<<"Your answer: ";
        cin>>odp;

        transform(odp.begin(),odp.end(),odp.begin(), ::tolower);
        if (odp==poprawna[i])
        {
            cout<<"Nice work! You get one point!"<<endl;
            punkt++;
        }
        else
            cout<<" Oooops, wrong answer! The good answer is: " <<poprawna[i]<<endl;
    }
    cout<<endl<<"End of quiz! Your points: "<<punkt;

    return 0;
}

Miałeś else w bloku kodu ifa ;) Jeszcze jakieś błędy? Pisz w komentarzach ;)

 

komentarz 25 czerwca 2015 przez Mleczko Początkujący (260 p.)
No dobra, jest ok tylko teraz jeden problem. Plik tekstowy znajduje się w folderze z programem jednak ten nie potrafi go odnaleźć. Dlaczego ?
komentarz 25 czerwca 2015 przez niezalogowany

Zamiast

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

daj

plik.open("quiz.txt", ios::out);

Czyli nie ios::in, tylko ios::out

Działa, ale nie sprawdzałem dalej kodu, bo jednak to jest inny tryb otwarcia, więc jakby były dalsze problemy to pisz. A może po prostu dałeś zły tryb?

komentarz 25 czerwca 2015 przez Mleczko Początkujący (260 p.)
No i ok, ios::out działa tylko, że nie wczytuje mi odpowiedzi i pytań ;-;...
komentarz 25 czerwca 2015 przez niezalogowany
No właśnie... Poczekaj, pokombinuję i jeszcze coś posprawdzam.
komentarz 25 czerwca 2015 przez niezalogowany
A! Daj plik quiz.txt nie do folderu z programem *.exe, tylko to folderu, w którym jest np. plik projektu, plik main.cpp. Działa ;)
komentarz 25 czerwca 2015 przez niezalogowany
Tylko popraw na ios::in!!!
komentarz 25 czerwca 2015 przez Mleczko Początkujący (260 p.)
Tzn. mam tak od samego początku, pojawia się A, B itp ale sam tekst nie ...
komentarz 25 czerwca 2015 przez Mleczko Początkujący (260 p.)
I własnie kiedy poprawiam na ios::in program nie wczytuje pliku, a gdy jest ios::out wczytuje tylko to co jest zawarte w kodzie źródłowym
komentarz 25 czerwca 2015 przez niezalogowany
Powiem ci szczerze, że niezbyt lubię współpracy z plikami, mimo że wiem, że to jednak całkiem ważne :| Ja tylko wykryłem błąd... Eh, no jeszcze pokombinuję, ale próbuj też sam, albo też poczekaj na innych użytkowników, oby pomogli ;)
komentarz 25 czerwca 2015 przez draghan VIP (106,230 p.)
Mleczko, pokaż zawartość pliku, który chcesz wczytać, to Ci podpowiem jak masz to wczytać. ;)
0 głosów
odpowiedź 25 czerwca 2015 przez pewolt Mądrala (5,790 p.)

 

        if (odp==poprawna[i])
        {
            cout<<"Nice work! You get one point!"<<endl;
            punkt++;

        }
        else cout<<" Oooops, wrong answer! The good answer is: " <<poprawna[i]<<endl;
    }
    cout<<endl<<"End of quiz! Your points: "<<punkt;

 

Podobne pytania

0 głosów
1 odpowiedź 146 wizyt
0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 30 maja 2017 w PHP przez Kamil Gąsior Obywatel (1,430 p.)
–1 głos
3 odpowiedzi 327 wizyt
pytanie zadane 8 kwietnia 2017 w PHP przez mati212 Nowicjusz (180 p.)

92,453 zapytań

141,262 odpowiedzi

319,086 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...