Приступил к изучению c++, ну и начал писать дурацкие программки для понятия основ синтаксиса.. Вот собственно одна из них:
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
int main(void){
bool b(true);
string nick;
string name;
while (b==true){
cout << "Введите Ваше имя:\t";
cin >> name;
cout << "Введите Ваш ник:\t";
cin >> nick;
cout << "Вы:\t" << name << " aka " << nick << "\nПравильно?(Y/N)";
char ch('0');
while( (ch!='Y') && (ch!='y') && (ch!='N') && (ch!='n') )
cin >> ch;
b = ((ch=='N') || (ch=='n'));
}
char ch('0');
cout << "Привет!\n" << nick << ", не хочешь ли сыграть?(Y/N)";
while( (ch!='Y') && (ch!='y') && (ch!='N') && (ch!='n') )
cin >> ch;
b = ((ch=='Y') || (ch=='y'));
if (b==true){
cout << "Удачи, " << name << "!\n";
const int number(5); //количество элементов
vector<int> fib(number);//ряд Фиббоначи
fib[0]=1;
fib[1]=1;
for(int i(2); i<=number; ++i)
fib[i]=fib[i-2]+fib[i-1];
srand(number);
unsigned short num_right( 0 );
unsigned short num_wrong( 0 );
while (b==true){
int k(rand() % (number-2) + 2); //номер угадуемого числа
cout << "Первый:" << fib[k-2] << "\tВторой:" << fib[k-1] << "\tТретий:";
int usr_uns; //ответ пользователя
cin >> usr_uns;
if (usr_uns == fib[k]){
cout << "Ура!\n";
++num_right;
}
else{
switch (++num_wrong)
{
case 1: cout << "Не плохо.. Но.."; break;
case 2: cout << "Можно и лучше.."; break;
case 3: cout << "Ну.."; break;
default: cout << "Увы.."; b=false; break;
}
cout << '\n';
}
}
cout << "Ваш счет: " << num_right << '\n';
}
else
{
cout << "Ну.. Как хочешь..\n";
}
cout << "Ok\n";
return 0;
}
Вот.. Но если соглашаться на "игру", то происходит ошибка времени исполнения или утечка памяти или...(?). Лог в атаче(локаль utf-8). Почему так?
компилятор: g++ (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
ide: eclipse
Заранее благодарен.
Сообщение отредактировано: compiler -