int nc;
for (int i=0; i<n; i++) {
ifs >> nc >> st; // читаем из очередной строчки
channels.push_back(Channel(nc,st)); // заполняем вектор каналов
}
fstream f("cur.txt", ios::in); // файл cur.txt, в начале открываем с параметром на чтение ios in
int vol, curc;
f >> curc >> vol; // считали текущую громкость и канал
setHandle(); // настроили хендл
setlocale(0,"");// для русских букв
TV tv(false, curc-1, vol, channels); // создали наш телик с заданными параметрами. curc -1 т.к в С нумерация эл в массиве с 0 идет а не с 1
updateInfo(tv);// вывели в уголок инфу
gotoxy(0,0);
cout << "Управление:\n";
cout << "w - вкл/выкл\nстрелки вбок - переключение каналов\nстрелки вверх/вниз - звук\ns - сохранить и выйти\nc - задать канал вручную";
int key;
while (1) {// бесконечный цикл
if (kbhit()) { // если была нажата клавиша
key = getch(); // получаем код клавиши
if (key == 119 || key == 230) // если w
tv.Turn(!tv.isOn());// включаем выключаем телик
else // если это любая клавиша кроме w то проверим если тел. выключен, и если да то просто перейдем к след итерации цикла ниче не делая (continue)
if (!tv.isOn())
continue;
if (key == 235 || key == 115){// если s
f.seekp(0, ios::beg); // в файле cur идем в начало файла
f.close();
f.open("cur.txt",ios::out);// переоткрываем файл для записи уже в этот раз
f << tv.getCurChannel().getNum() << '\n' << tv.getVolume(); // выводим актуальные данные
f.close();// закрываем файл
return 0;// выходим из программы
}
if (key == 225 || key == 99){// если с
int n;
gotoxy(0,6);
cout << "Введите канал: ";
cin >> n; // читаем что ввел пользователь
cin.get();
tv.switchChannel(n-1); // переключаем на канал на тот что ввели
gotoxy(0,6);
cout << " "; // стираем надпись "Введите канал: "
}
if (kbhit()) { // если код нажатой клавиши состоит из 2 цифр (такое происходит со стрелками т.к их коды представляют собой 2 цифры, по 2ой их и различают)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.