Pretty new programmer here, I decided to play around with sleep(), and made this simple timer, it works but I feel like it could’ve been better, what can I do? I couldn’t think of anything to make the code any better myself, so I need some feedback.
I’m just asking this question to potentially learn some better ways to write my code in the future, since I’ve always felt like my code had some sort of problem to it, but couldn’t really tell what it was.
#include <iostream>
#include <unistd.h>
void show_time (int settime_hours, int settime_minutes, int settime_seconds);
int main()
{
int settime_hours;
int settime_minutes;
int settime_seconds;
std::cout << " Timern";
std::cout << "***************************n";
std::cout << "Set Time Limit (Hours): ";
std::cin >> settime_hours;
std::cout << "Set Time Limit (Minutes): ";
std::cin >> settime_minutes;
std::cout << "Set Time Limit (Seconds): ";
std::cin >> settime_seconds;
if (settime_minutes >= 60){
settime_hours = settime_hours + settime_minutes/60;
settime_minutes = settime_minutes % 60;
}
if (settime_seconds >= 60){
settime_minutes = settime_minutes + settime_seconds/60;
settime_seconds = settime_seconds % 60;
}
std::cout << 'n';
show_time (settime_hours, settime_minutes, settime_seconds);
return 0;
}
void show_time (int settime_hours, int settime_minutes, int settime_seconds)
{
for(;;){
std::cout << settime_hours << " Hours : " << settime_minutes << " Minutes : " << settime_seconds << " Seconds" << " r";
std::cout.flush();
sleep(1);
settime_seconds--;
if (settime_seconds < 0){
settime_minutes--;
settime_seconds = 59;
if (settime_minutes == 0){
settime_minutes = 0;
}
}
if (settime_minutes < 0 || settime_seconds < 0){
settime_hours--;
settime_minutes = 59;
if (settime_hours == 0){
settime_hours = 0;
}
}
if (settime_seconds == 0 && settime_minutes == 0 && settime_hours == 0){
std::cout << "Time's Up! ";
break;
}
}
}
(I’m self taught, and mostly learn my stuff from random websites, including Stack Overflow, and some Youtube videos, coding is currently just for fun.)
All-Star-Super is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.