Witam,
Chodzi oto że po zastąpieniu zwykłych pytań (w notatniku) kodem binarnym, pytania nie odczytują się.
(oczywiście dodałem ios::binary). Moje pytania na kod binarny zamieniłem na stronie: http://nickciske.com/tools/binary.php
Oto mój kod:
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>
#include <cstring>
#include <windows.h>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <time.h>
using namespace std;
char *tr(char *str)
{
static char buff[256];
char cp[]="\245\206\251\210\344\242\230\276\253\244\217\250\235\343\340\227\275\215ąćęłńóśżźĄĆĘŁŃÓŚŻŹ";
if(strlen(str)>=sizeof(buff)) return str;
char *bf=buff;
while(*str)
{
char *pos=strchr(cp+18,*str);
*(bf++)=pos?*(pos-18):*str;
++str;
}
*bf=0;
return buff;
}
int monety, monety_z_pliku, wybor, wybierz_quiz;
//do odczytu z pliku
string temat, nick;
string tresc[11];
string odpA[11], odpB[11], odpC[11], odpD[11];
string poprawna[11];
string odpowiedz;
//Do fstream
int nr_linii=1;
string linia;
int nr_pytania=0;
int punkty=0;
//do losowania
int ile_pytan = 10; //z ilu pytan losujemy?
int ile_wylosowac = 10; //ile pytan wylosowac?
int ile_juz_wylosowano=0; //zmienna pomocnicza
int *wylosowane = new int[ile_wylosowac+1]; //rezerwacja tablicy
bool losowanie_ok;
int main()
{
HANDLE hOut;
hOut = GetStdHandle( STD_OUTPUT_HANDLE );
cout << tr("-----MENU GŁÓWNE-----")<<endl;
SetConsoleTextAttribute(hOut, FOREGROUND_BLUE);
cout << tr("1.Wybierz Quiz")<<endl;
cout << tr("2.Sklep")<<endl;
cout << tr("3.Wyjdź z gry")<<endl;
wybor=getch();
switch(wybor)
{
case '1':
{
HANDLE hOut;
hOut = GetStdHandle( STD_OUTPUT_HANDLE );
cout << "--------------------"<<endl;
SetConsoleTextAttribute(hOut, 0x0006);
cout << tr("Dostępne quizy:")<<endl;
SetConsoleTextAttribute(hOut, 0x00080);
cout << tr("1.World Of Tanks")<<endl;
SetConsoleTextAttribute(hOut, 0x0002);
cout << tr("2.Minecraft")<<endl;
SetConsoleTextAttribute(hOut, 0x0004);
cout << tr("3.Programowanie w c++")<<endl;
SetConsoleTextAttribute(hOut, 0x0001);
cout << "-----------------------------------"<<endl;
cout << tr("Twój wybór:");
wybierz_quiz=getch();
switch(wybierz_quiz)
{
case '1':
{
fstream plik;
plik.open("quizy/wot.txt",ios::in | ios::binary);
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<=9; i++)
{
for (int w=1; w<=ile_wylosowac; w++)
{
do
{
srand(time(NULL));
w=rand()%ile_pytan+1; //losowanie w C++
losowanie_ok=true;
for (int j=1; j<=ile_juz_wylosowano; j++)
{
//czy liczba nie zostala juz wczesniej wylosowana?
if (w==wylosowane[j]) losowanie_ok=false;
}
if (losowanie_ok==true)
{
//mamy unikatowa liczbe, zapiszmy ja do tablicy
ile_juz_wylosowano++;
wylosowane[ile_juz_wylosowano]=w;
}
} while(losowanie_ok!=true);
SetConsoleTextAttribute(hOut, 0x0003);
cout<<endl<<tresc[w]<<endl;
SetConsoleTextAttribute(hOut, 0x0008);
cout<<"-----------------------"<<endl;
SetConsoleTextAttribute(hOut, 0x0006);
cout<<"A. "<<odpA[w]<<endl;
cout<<"B. "<<odpB[w]<<endl;
cout<<"C. "<<odpC[w]<<endl;
cout<<"D. "<<odpD[w]<<endl;
SetConsoleTextAttribute(hOut, 0x0008);
cout<<"------------------------"<<endl;
SetConsoleTextAttribute(hOut, 0x0002);
cout<<"Twoja odpowiedz: ";
cin>>odpowiedz;
transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::tolower);
if (odpowiedz==poprawna[w])
{
cout<<"Dobrze! Zdobywasz punkt!"<<endl;
punkty++;
}
else cout<<"Zle! Brak punktu! Poprawna odpowiedz: "<<poprawna[w]<<endl;
}
}
}
case '2':
{
fstream plik;
plik.open("quizy/minecraft.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<=9; i++)
{
for (int w=1; w<=ile_wylosowac; w++)
{
do
{
srand(time(NULL));
w=rand()%ile_pytan+1; //losowanie w C++
losowanie_ok=true;
for (int j=1; j<=ile_juz_wylosowano; j++)
{
//czy liczba nie zostala juz wczesniej wylosowana?
if (w==wylosowane[j]) losowanie_ok=false;
}
if (losowanie_ok==true)
{
//mamy unikatowa liczbe, zapiszmy ja do tablicy
ile_juz_wylosowano++;
wylosowane[ile_juz_wylosowano]=w;
}
} while(losowanie_ok!=true);
SetConsoleTextAttribute(hOut, 0x0003);
cout<<endl<<tresc[w]<<endl;
SetConsoleTextAttribute(hOut, 0x0008);
cout<<"-----------------------"<<endl;
SetConsoleTextAttribute(hOut, 0x0006);
cout<<"A. "<<odpA[w]<<endl;
cout<<"B. "<<odpB[w]<<endl;
cout<<"C. "<<odpC[w]<<endl;
cout<<"D. "<<odpD[w]<<endl;
SetConsoleTextAttribute(hOut, 0x0008);
cout<<"------------------------"<<endl;
SetConsoleTextAttribute(hOut, 0x0002);
cout<<"Twoja odpowiedz: ";
cin>>odpowiedz;
transform(odpowiedz.begin(), odpowiedz.end(), odpowiedz.begin(), ::tolower);
if (odpowiedz==poprawna[w])
{
cout<<"Dobrze! Zdobywasz punkt!"<<endl;
punkty++;
}
else cout<<"Zle! Brak punktu! Poprawna odpowiedz: "<<poprawna[w]<<endl;
}
}
}
case '3':
{
}
}
}
getchar();getchar();
system("cls");
case '2':
{
}
case '3':
{
}
}
getchar();getchar();
system("cls");
return 0;
}
(Jeśli komuś jest to potrzebne) zawartość notatnika
01010111011011110111001001101100011001000010000001001111011001100010000001110100011000010110111001101011011100110000110100001010011110100110101101101011011001100011010100110110000011010000101001001110011000010110101001100011011010010110010101111010011100110111101001111001001000000110001101111010011011110110110001100111001000000111011100100000011001110111001001111010011001010010000001110100011011110011101000001101000010100100100101010011001011010011011100001101000010100100110101100001011101010111001100001101000010100100010100101101001100010011000000110000000011010000101000110001001100100011000100001101000010100110001000001101000010100100101101110100011011110111001001100001001000000111011101100101011100100111001101101010011000010010000001111010011011110111001101110100011000010110110001100001001000000111011101110000011100100110111101110111011000010110010001111010011011110110111001100001001000000111011100100000011011000111010101110100011110010110110100100000001100100011000000110001001101100010000001110010011011110110101101110101001111110000110100001010001110010010111000111001000011010000101000111001001011100011000100110011000011010000101000111001001011100011000100110111000011010000101000111001001011100011000100110100000011010000101001100100000011010000101001010111001000000110110001101111011100110110111101110111011001010110101000100000011000100110100101110100011101110110100101100101001000000010100001010111011001010111001001110011011010100110000100100000001110010010111000110001001101000010100100100000011001110111001001100001001110100000110100001010001100010011010100100000011000110111101001101111011011000110011101101111011101110010000001110110011100110010000000110001001101010010000001100011011110100110111101101100011001110110111101110111000011010000101000110001001100000010000001100011011110100110111101101100011001110110111101110111001000000111011001110011001000000011000100110000001000000110001101111010011011110110110001100111011011110111011100001101000010100011001000110000001000000110001101111010011011110110110001100111011011110111011100100000011101100111001100100000001100100011000000100000011000110111101001101111011011000110011101101111011101110000110100001010001100010011010100100000011000110111101001101111011011000110011101101111011101110010000001110110011100110010000000110001001100010010000001100011011110100110111101101100011001110110111101110111000011010000101001100001000011010000101001001010011000010111000001101111110001011000010001110011011010110110100100100000011000110111101001101111011011000110011100100000011101000110111100111010000011010000101001001001010100110010110100110111000011010000101001001011010101100010110100110011000011010000101001010011010101000100000100101101001100010000110100001010010001100101011000110011001100000011010000001101000010100110001100001101000010100011001000100000011011100110000101101010011000110110100111000100100110011100010110111100011100110111101001111001001000000110001101111010011011110110110001100111001000000111011100100000011001110111001001111010011001010010000001110100011011110011101000001101000010100100100101010011001011010011010000001101000010100101010000110001001100000000110100001010010001010010110100110001001100000011000000001101000010100100010100101101001101010011000000100000011011010000110100001010011000110000110100001010010011100110100101110011011110100110001101111010011110010110001101101001011001010110110000100000011000110111101001101111011011000110011101101111011101110010000001110100011011110011101000001101000010100100110100110100001100010010000001010111011000010110110001101011011001010111001000100000010000100111010101101100011011000110010001101111011001110000110100001010010100110101010100101101001101010000110100001010010101000011011000110111000011010000101001001101001101000100000100110011010001010011001000001101000010100110001100001101000010100100111001100001011010100111001101111010011110010110001001110011011110100110000100100000011000010110110001110100011110010110110001100101011100100110100101100001001000000111011100100000011001110111001001111010011001010010000001110100011011110011101000001101000010100101001101010101001011010011001000110110000011010000101001000110010101100011001100110000001101000000110100001010010000010010110100110010001100000000110100001010010010000110010101101100011011000110001101100001011101000000110100001010011000100000110100001010010100100110111101110011011110010110101001110011011010110110100100100000011000110111101001101111011011000110011100100000001100010010000001110100011010010110010101110010011101010010000001110100011011110011101000001101000010100100110101010011001011010011000100001101000010100101010000110001000011010000101001001011010101100010110100110001000011010000101001010010010001010100111001000001010101010100110001010100001000000100011001010100000011010000101001100001000011010000101001000011011110100110111101101100011001110010000000110111001000000111010001101001011001010111001001110101001000000111010001101111001110100000110100001010010010010101001100101101001101000000110100001010010011010011010000110001001000000101011101100001011011000110101101100101011100100010000001000010011101010110110001101100011001000110111101100111000011010000101001001000011001010110110001101100011000110110000101110100000011010000101001001101001101000100000100110011010001010011001000001101000010100110001000001101000010100101011101101111011100100110110001100100001000000100111101100110001000000101010001100001011011100110101101110011001000000111011100100000001100100011000000110001001101100010000001110010011011110110101101110101001000000110110101100001001110100000110100001010001100110010000001101100011000010111010001100001000011010000101000110001001100000010000001101100011000010111010000001101000010100011011100100000011011000110000101110100000011010000101000110101001000000110110001100001011101000000110100001010011001000000110100001010000011010000101000001101000010100000110100001010111011111011111110111101
Z góry dziękuję :-)