Я пишу базовую программу для класса, чтобы управлять списком событий. У меня есть функция void со структурой для ввода новых данных, которые застряли в цикле. Структура создается и после завершения части ввода данных она возвращается и повторяется.
Я попытался заключить его в do{}while loop
и попытался разбить его на серию if
операторов. Есть ли команда или диалог для выхода или завершения структуры?
По запросу, минимум:
#include <iostream>
#include <string>
#include <algorithm>
#include <stdio.h>
using namespace std;
void menu();
void AddANewEvent();
struct Event{ //struct to hold event data, name, location, description, date, start time, and duration
string EventName;
string EventLoc; // location for the event
string EventDesc; //describe the event
string Date; //date in DD/MM/YYYY format
string StartTime; //time to start in 24H format
float Duration; //time in whole hours
};
int main()
{
menu();
//AddANewEvent(); removed this and it works...
return 0;
}
void menu(){
int action = 0;
cout << "Event List Management Menu" << endl;
cout << "1. Add new event" << endl; // add a new event, almost feeling positive about this part but it may be delirium.
cout << "Please select an action (1): " ; //prompt user for input
cin >> action; //storing input
switch(action)
{
case 1: AddANewEvent(); break;
}}
void AddANewEvent(){
Event evn;
cout << "Enter event name: " << endl;
cin >> evn.EventName;
cout << "Enter event location: " << endl;
cin >> evn.EventLoc;
cout << "Enter event description: " << endl;
cin >> evn.EventDesc;
cout << "Enter date: " << endl;
cin >> evn.Date;
cout << "Enter start time: " << endl;
cin >> evn.StartTime;
cout << "Enter duration in hours: " << endl;
cin >> evn.Duration;
} //end of the function
Вот откуда моя проблема:
void AddANewEvent(string &fileName){
Event evn;
cout << "Enter event name: " << endl;
cin >> evn.EventName;
cout << "Enter event location: " << endl;
cin >> evn.EventLoc;
cout << "Enter event description: " << endl;
cin >> evn.EventDesc;
cout << "Enter date: " << endl;
cin >> evn.Date;
cout << "Enter start time: " << endl;
cin >> evn.StartTime;
cout << "Enter duration in hours: " << endl;
cin >> evn.Duration;
} //end of the function
Я думаю, что моя структура в порядке:
struct Event{ //struct to hold event data, name, location, description, date, start time, and duration
string EventName;
string EventLoc; // location for the event
string EventDesc; //describe the event
string Date; //date in DD/MM/YYYY format
string StartTime; //time to start in 24H format
float Duration; //time in whole hours
};
В других частях этой программы я успешно реализовал подобные сегменты, где функция может быть продолжена или завершена с вопросом «да» или «нет». Однако в этом сегменте это не сработает. В идеале, после обработки этого раздела кода он будет предлагать повторить и в противном случае вернуться к основному. Все мои попытки до сих пор не смогли вернуться, только чтобы непреднамеренно повторить диалог.