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

Pytanie do Kursu 8 - Quiz

Object Storage Arubacloud
+2 głosów
280 wizyt
pytanie zadane 4 kwietnia 2015 w C i C++ przez Przemek Dudek Nowicjusz (230 p.)
edycja 4 kwietnia 2015 przez Mirosław Zelent

Kursy super. Ale mam problem, program w kursie tego nie robi, ale chciałem wywołać pierwszą linie z quiz.txt, czyli temat. Co bym nie wpisał w tym txt w pierwszej inii, to zawsze Temat zaczyna się od krzaczka. I tylko w nim, wszystko inne działają. To może być wina mojego kodu, czy raczej jakiś problem z kodowaniem txt?
 

string temat, nick;
case 1: temat=linia; break;
cout<<endl<< "Temat: "<<temat;

ps.
Czy wysłać zestaw pytań??



Wysyałm tez linie kodu i plik txt.



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

using namespace std;
string temat, nick;
string tresc[5];
string odpA[5];
string odpB[5];
string odpC[5];
string odpD[5];
string poprawna[5];


int main()
{
    int nr_linii=1;
    int nr_pytania=0;
    int punkty=0;
    string odpowiedz;
    string linia;
    fstream plik;

    plik.open("quiz.txt", ios::in);
    if((plik.good())==false)
    {
        cout << "nie mozna 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();
    cout<<endl<< "Autor: "<<nick;
    cout<<endl<< "Temat: "<<temat;
    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 (wcisnij A, B, C lub D): ";
        cin>>odpowiedz;
        transform(odpowiedz.begin(), odpowiedz.end(),odpowiedz.begin(), :: tolower);
        if(odpowiedz==poprawna[i])
        {
            cout << "Odpowiedz poprawna, zdobywasz punkt!" <<endl;
            punkty++;
        }
        else
        {
            cout<< "Zla odpowiedz, brak punktu, poprawna odpowiedz to: "<<poprawna[i]<<endl;
        }
    }
    cout<<endl<<"Koniec Quiz'u, zdobyto punktow: "<<punkty;
    return 0;

quiz.TXT

Volleyball (Pilka Siatkowa)
Przemyslaw Dudek
Ilu zawodnikow ma druzyna na boisku:
7
6
4
5
b
Ile zmian mozna dokonac w trakcie jednego seta:
2
6
10
4
b
Jakie sa wymiary calego boiska:
9x18m
10x20m
6x12m
8x8
a
Jaka jest wysokosc siatki u mezczyzn:
250cm
240cm
225cm
243cm
d
Jakie sa mozliwe (poprawne) wyniki meczu siakarskiego: 
3:1, 3:2, 2:0
3:0, 3:1, 3:2
2:2, 2:1, 2:0
2:2, 3:1, 3:0
b

 

5 odpowiedzi

+2 głosów
odpowiedź 4 kwietnia 2015 przez Harsay Pasjonat (23,640 p.)
wybrane 4 kwietnia 2015 przez Mirosław Zelent
 
Najlepsza
Skopiowałem to co podałeś i nie wyświetla mi krzaczka na początku tematu.
Prawdopodobnie masz złe formatowanie pliku (zmień na UTF-8 bez BOM).
+2 głosów
odpowiedź 4 kwietnia 2015 przez Valtuil Pasjonat (22,460 p.)
Możliwe że masz kodowanie utf-8 with bom. W Notepad++ możesz skonwertować na utf-8 without bom.
+2 głosów
odpowiedź 4 kwietnia 2015 przez Mirosław Zelent Nałogowiec (34,780 p.)
U mnie błąd nie występuje, stąd ten krzaczek zapewne bierze się z kodowania znaków w pliku TXT - tam musi być na początku pliku jakiś znak, którego nie widać w Notatniku, a który pojawia się w konsoli. Przygotowałbym nowy plik TXT. Dopiero gdyby to nie pomogło, szukałbym błędów w kodzie. Pozdrawiam
+2 głosów
odpowiedź 4 kwietnia 2015 przez toaspzoo Dyskutant (8,300 p.)
Tak jak mój przedmówca. Otwórz plik w notepadzie, wytnij wszystko, ustaw kodowanie na utf-8 bez BOM, a następnie wklej.
+1 głos
odpowiedź 4 kwietnia 2015 przez Przemek Dudek Nowicjusz (230 p.)
Wszystkie wasze podpowiedzi są słuszne, zmieniłem kodowanie utf-8 without BOM w notepad++ i to pomogło.

Pytanie pisałem w notepad++ i zapomniałem o tym szczególe w kodowaniu.

A potem juz edytowałem w zwykłym notatniku, więc kodowanie pewnie było podtrzymane.

Dzięki wielkie, teraz wszystko działa. Mogę ruszać dalej, 9 kurs z funkcjami i preedurami już za mną...

Podobne pytania

0 głosów
1 odpowiedź 605 wizyt
pytanie zadane 25 czerwca 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
1 odpowiedź 2,309 wizyt
pytanie zadane 13 stycznia 2017 w C i C++ przez Seszele11 Początkujący (330 p.)
0 głosów
2 odpowiedzi 312 wizyt

92,617 zapytań

141,466 odpowiedzi

319,783 komentarzy

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

...