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

Quiz c++ 7 nie dziala tak jak powiniem

Object Storage Arubacloud
0 głosów
626 wizyt
pytanie zadane 17 października 2017 w C i C++ przez Łukasz ER Początkujący (420 p.)

Witam, 

Wiem ze juz na forum były podobne pytania o ten kurs ale mój proble jest nieco inny. Cały kod jest zrobiony prawidłowo . Sprawdzałem czy odpowiednie linie z pliku są zapisane poprawnie w tablicach i są . Jednak jak kompiluję to pomimo iż udzielam dobrych odpowiedzi na pytanie to program twierdzi inaczej. Jedynym wyjątkiem jest ostatnie pytanie kiedy to zalicza punkt. Dodam iż programuję w Xcode i nie mam możliwości sprawdzenia kodu w środowisku windows. Ktoś ma jakiś pomysł na to ?? może to ja się gdzieś je...łem. 

 

#include <iostream>
#include <unistd.h>
#include <cstdlib>
#include <fstream>
#include <algorithm>
using namespace std;

int main(int argc, const char * argv[]) {
   
   string quizTitle;
   string author;
   string topic[4];
   string ansA[5], ansB[5], ansC[5], ansD[5];
   string goodAnswer[5];
   int points = 0;
   string answer;
   
   string line;
   int lineNumber = 1;
   int answerNumber = 0;
   
   fstream file;
   file.open("quiz.txt", ios::in);
   if (file.good()==false)
    {
      cout<<"File do not exist!"<<endl;
      exit(0);
    }
   
   while(getline(file,line))
    {
      switch(lineNumber)
      {
         case 1: quizTitle = line; break;
         case 2: author = line; break;
         case 3: topic[answerNumber] = line; break;
         case 4: ansA[answerNumber] = line; break;
         case 5: ansB[answerNumber] = line; break;
         case 6: ansC[answerNumber] = line; break;
         case 7: ansD[answerNumber] = line; break;
         case 8: goodAnswer[answerNumber] = line; break;
      }
      if (lineNumber == 8)
       {
         lineNumber = 2;
         answerNumber++;
       }
      lineNumber++;
    }
   file.close();
   file.clear();
   
   for (int i=0; i<=4; i++)
    {
      cout<<endl<<topic[i]<<endl;
      cout<<ansA[i]<<endl;
      cout<<ansB[i]<<endl;
      cout<<ansC[i]<<endl;
      cout<<ansD[i]<<endl;
      cout<<"Twoja odpowiedź: ";
      cin>>answer;
      transform(answer.begin(), answer.end(), answer.begin(), ::tolower);
      if (answer == goodAnswer[i])
       {
         points += 1;
         cout<<"Brawo poprawna odpowiedź!"<<endl;
       }
      else
         cout<<"Niestety zła odpowiedź. Poprawna odpowiedź to: "<< goodAnswer[i]<<endl;
    }
   cout<<"Quiz zakończony uzyskałeś "<<points<<" z 5 punktów."<<endl;
   

   return 0;
}

 

komentarz 17 października 2017 przez Aisekai Nałogowiec (42,190 p.)
Czy odpowiedź poprawna, jest więcej niż jedno czlonowa? Np "Jakiś tekst"

Czy odpowiedzi podajesz A, B, C, D?
komentarz 17 października 2017 przez Łukasz ER Początkujący (420 p.)
Opdpwiedzi sa 1 lub wieloczłonowe ale w tym przypadku nie ma to znaczenia ponieważ poprawne odpowiedzi jsa przechowywane w oddzielnej tablicy w postaci  a b c lub d i potem tylko if'em jest sprawdzane czy odpowiedz z tablicy jest taka sama jak wpisana

poniżej skopiowany plik txt z danymi quizu

 

 

Programowanie w C++
Miroslaw Zelent
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

3 odpowiedzi

+1 głos
odpowiedź 17 października 2017 przez bielak1992r Użytkownik (660 p.)
wybrane 17 października 2017 przez Łukasz ER
 
Najlepsza
Na windows 7 wszystko cacy, tylko polskich znaków nie mam :P Ale w quizie podaj abcd przed odpowiedziami lub info, żeby to pisać ;)
komentarz 17 października 2017 przez Łukasz ER Początkujący (420 p.)
Czyli tak jak myślałem - wina kompilatora
0 głosów
odpowiedź 10 grudnia 2017 przez dzem Nowicjusz (180 p.)
hej, mam dokładnie ten sam problem i również na Xcode.

Nawet jeśli to wina kompilatora, to powinien być jakiś sposób, aby to działało poprawnie. Ktoś wie jak to rozwiązać?
0 głosów
odpowiedź 10 grudnia 2017 przez Piotr Batko Stary wyjadacz (13,190 p.)

Spróbuj może pomiędzy linijkami 62 i 63 dodać na moment wypisywanie wczytanego z pliku stringa i podaną przez użytkownika odpowiedź. Jeżeli na oko nie będzie widać różnicy, a mimo wszystko porównanie będzie mówiło, że to inne stringi, to spróbuj jeszcze wypisać wszystkie kody znaków w obydwóch stringach.

for (int i = 0; i < str.size(); ++i)
{
  std::cout << static_cast <int> (str[i]) << std::endl;
}

Podobne pytania

0 głosów
1 odpowiedź 398 wizyt
0 głosów
2 odpowiedzi 305 wizyt
pytanie zadane 12 lipca 2015 w C i C++ przez mystery.of.silence Nowicjusz (230 p.)
0 głosów
2 odpowiedzi 226 wizyt
pytanie zadane 19 sierpnia 2015 w C i C++ przez lukasz_m Obywatel (1,380 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

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

...