Компилятор ругается на условие цикла do...while
Напишите функцию с именем hms_to_secs(), имеющую три аргумента типа int: часы, минуты и секунды.
Функция должна возвращать эквивалент переданного ей временного значения в секундах (типа long).
Создайте программу, которая будет циклически запрашивать у пользователя ввод значения часов, минут и секунд и выводить результат работы функции на экран.
#include <iostream>
using namespace std;
long hms_to_secs(int, int, int);
int main()
{
do
{
char select, temp;
int hour, min, sec;
cout << "Введите время в формате ч:мин:сек: ";
cin >> hour >> temp >> min >> temp >> sec;
cout << "Время в секундах равно: " << hms_to_secs(hour, min, sec);
cout << "Повторим? у/n?: ";
cin >> select;
}
while (select == 'y');
return 0;
}
long hms_to_secs(int hr, int min, int sec)
{
long times = hr * 3600 + min * 60 + sec;
return times;
}
Компилятор ругается на сравнение char и int в условии цикла do...while: while (select == 'y');
Но ведь у меня переменная select определена как char.
Помогите разобраться пожалуйста!
Сообщение компилятора:
error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
24 | while (select == 'y');
Ответы (1 шт):
Смотрим:
do
{
char select, temp; // <-- Здесь переменная объявлена
cin >> select;
} // <-- Здесь закончилась ее область видимости
while (select == 'y'); // <-- С КАКОЙ переменной вы сравниваете 'y'?
Где-то в инклудах есть что-то такое... В VC++ нет, и он честно ругается на необъявленную переменную.
P.S. Да, поискал... в GCC это функция
int select(int, fd_set*, fd_set*, fd_set*, timeval*)