Итак, я пытаюсь собрать эту программу для проекта, и это ведет себя странно для меня. Вот пример того, что происходит в консоли:только может вводить ввод после первого запроса, затем заканчивается программа C++
Compute Время окончания от текущего времени и периода ожидания
Текущее время:
Введите 24-часовой время в формате HH: MM 12:50
время ожидания:
Введите 24-часовой время в формате HH: MM время сдачи в 24-часовом формате:
4644952: 4198980
Введите Y или Y, чтобы продолжить, y другие остановки
Возвращенный процесс 0 (0x0) время выполнения: 3.927 s
Нажмите любую клавишу, чтобы продолжить.
Часть, выделенная жирным шрифтом, является единственной частью, которую я мог бы ввести, а затем она просто проходит через инструкции cout, не позволяя мне вводить данные второго фрагмента. Затем выводит некоторый номер мусора из функции вычисления. Вот мой код:
#include <iostream>
using namespace std;
void getEndTime(int c_hours, int c_minutes, int w_hours, int w_minutes, int& e_hours, int& e_minutes);
void getCurrentTime(int& c_hours, int& c_minutes);
void getWaitingTime(int& w_hours, int& w_minutes);
void runLoop();
int main()
{
char select;
cout << "Compute completion time from current time and waiting period \n";
do {
runLoop();
cout << "Enter Y or y to continue, any other halts";
cin >> select;
} while (select == 'y' || select == 'Y');
return 0;
}
void runLoop()
{
int current_hours, current_minutes, waiting_hours, waiting_minutes;
int end_hours, end_minutes;
getCurrentTime(current_hours, current_minutes);
getWaitingTime(waiting_hours, waiting_minutes);
getEndTime(current_hours, current_minutes, waiting_hours, waiting_minutes, end_hours, end_minutes);
cout << "Completion time in 24 hour format:\n" << end_hours << ":" << end_minutes << endl;
}
void getCurrentTime(int& c_hours, int& c_minutes)
{
cout << "Current time:\n"
<< "Enter 24 hour time in the format HH:MM ";
cin >> c_hours >> c_minutes;
}
void getWaitingTime(int& w_hours, int& w_minutes)
{
cout << "Waiting time:\n"
<< "Enter 24 hour time in the format HH:MM ";
cin >> w_hours >> w_minutes;
}
void getEndTime(int c_hours, int c_minutes, int w_hours, int w_minutes, int& e_hours, int& e_minutes)
{
if ((c_hours + w_hours) >= 24) {
e_hours = (c_hours + w_hours - 24);
}
else {
e_hours = (c_hours + w_hours);
}
if ((c_minutes + w_minutes) >= 60) {
e_hours += 1;
e_minutes = (c_minutes + w_minutes) - 60;
}
else {
e_minutes = c_minutes + w_minutes;
}
return;
}
Я довольно новыми для этого, так что я прошу прощения, если есть что-то очевидно, мне не хватает. Но я надеюсь, что один из вас может помочь мне здесь, я совершенно в тупике, почему это не работает! Благодаря!
Я настоятельно рекомендую вам (а) научиться использовать отладчик вашей платформы, и (б) при отсутствии (или даже в дополнение к) отладчик * * Обильно посыпать 'сегг << ваш-варьировали здесь << std :: endl; 'по всему вашему коду, чтобы убедиться, что вы * думаете * читаете, на самом деле. – WhozCraig
Разумная тестовая версия, но эта тема была рассмотрена на Bazillion раз на SO. Перед тем, как спросить, выполните _research_. –
@WhozCraig Может быть, я что-то упустил, мой компилятор не дал ошибок сборки. Является ли отладчик чем-то другим? Можете ли вы указать мне некоторую информацию по этому вопросу, пожалуйста? – madEngineer