@fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
|
11.07.2011, 20:00
[ТС]
|
|
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
| struct Questions
{
string question; // вопрос
string *answer [5]; // варианты ответов
char right; // номер эталонного ответа
};
void read_questions (vector <Questions> &Q)
{
setlocale(LC_ALL, "Russian");
string question, answer;
Questions vopros;
char simvol, etalon;
int i;
const bool key=true;//для вечного цикла, выход по окончании чтения файла
ifstream potok("question.bin");
if (potok.is_open())
{
while(key)
{
//читаем вопрос
while (!potok.eof())
{
simvol=potok.get();
simvol=Decode (simvol);
if (simvol=='@')
break;
question+=simvol;
}
if (potok.eof()) //защита на случай, если файл закончился, не встретив знак окончания вопроса ('@')
{potok.close(); return;}
vopros.question=question;
question.clear();
//читаем ответы
i=0;
while (i<5)
{
while (!potok.eof())
{
simvol=potok.get();
simvol=Decode (simvol);
if (simvol=='@')
break;
answer+=simvol;
}
vopros.answer[i]=answer;//вот тут неправильная строка
answer.clear();
i++;
}
//читаем номер правильного ответа
etalon=potok.get();
etalon=Decode(etalon);
vopros.right=etalon;
simvol=potok.get();//читаем последний символ вопроса, чтобы можно было читать следующий вопрос
Q.push_back(vopros);
}
}
else
cout<<"Файл question.bin не был открыт на чтение"<<endl;
} |
|
0
|