hi guys my program seems to be crashing when I choose option 2,the program for some reason decides to crash,I'm not sure why it does this and how I would go about fixing it
diary.txt: 11/04/2017: Lorem ipsum dolor sit amet, ei usu exerci vocibus invidunt, ea tantas civibus sed, ne vitae alterum probatus eam. Assum ornatus ius ea, autem commodo tamquam eam ex. Est habeo signiferumque an, ut his novum definitionem. Quod hendrerit omittantur ad duo, ei usu diceret delicata. Te cum populo scripta gubergren.
09/03/2017: Duo vide consul et, ne est abhorreant moderatius. Option partiendo eos eu, per ea timeam mandamus mediocritatem. Nec at minim sonet consequuntur. Sea eu semper aliquid volumus, et solum copiosae pertinax eum. Possit dictas facilisis mei ex.
05/06/2016: Mundi persius platonem no vim. Sea no aperiam omittantur. Ad vel sanctus utroque assentior, mei ei aeque suscipit patrioque. Alia mundi postulant nam eu, his at amet feugait hendrerit. Ex quis dicam aeterno sea, rebum recusabo et mel.
#include <fstream>
#include <iostream>
#include <map>
using diarymap = std::map<std::string, std::string>;
void options();
void inputToDiary();
diarymap& readFromDiary(diarymap& entries);
int main()
{
bool quit = false;
diarymap entries;
while(!quit) {
readFromDiary(entries);
options();
int choice;
std::cin >> choice;
std::cin.ignore();
switch(choice) {
case 1:
inputToDiary();
break;
case 2:
for (diarymap::iterator it = entries.begin();
it != entries.end(); it++) {
std::cout << it->first << ' ' << it->second << '\n';
}
std::cout << '\n';
break;
case 3:
quit = true;
break;
default:
std::cout << "invalid choice\n";
}
}
}
void options()
{
std::cout << "MY DIARY\n""Press 1 - to add entry\n""Press 2 - to view entries\n""Press 3 - to quit\n";
}
void inputToDiary()
{
std::cout << "Sorry: no code yet.\n\n";
}
diarymap& readFromDiary(diarymap& entries)
{
std::ifstream in("diary.txt");
if (!in) {
std::cout << "file could not be opened\n";
return entries;
}
for(std::string line; std::getline(in, line); /**/) {
if(line.empty()) { continue; }
std::string::size_type mypos = line.find(':');
std::string date = line.substr(0, mypos);
line.erase(0, mypos);
entries.emplace(date, line);
}
in.close();
return entries;
}
Output:
MY DIARY
Press 1 - to add entry
Press 2 - to view entries
Press 3 - to quit
1
Sorry: no code yet.
MY DIARY
Press 1 - to add entry
Press 2 - to view entries
Press 3 - to quit
2
05/06/2016 : Mundi persius platonem no vim. Sea no aperiam omittantur. Ad vel
sanctus utroque assentior, mei ei aeque suscipit patrioque. Alia mundi
postulant nam eu, his at amet feugait hendrerit. Ex quis dicam aeterno sea,
rebum recusaboet mel.
09/03/2017 : Duo vide consul et, ne est abhorreant moderatius. Option
partiendo eos eu, per ea timeam mandamus mediocritatem. Nec at minim sonet
consequuntur. Sea eu semper aliquid volumus, et solum copiosae pertinax eum.
Possit dictas facilisis mei ex.
11/04/2017 : Lorem ipsum dolor sit amet, ei usu exerci vocibus invidunt, ea
tantas civibus sed, ne vitae alterum probatus eam. Assum ornatus ius ea, autem
commodo tamquam eam ex. Est habeo signiferumque an, ut his novum definitionem.
Quod hendrerit omittantur ad duo, ei usu diceret delicata. Te cum populo
scripta gubergren.
MY DIARY
Press 1 - to add entry
Press 2 - to view entries
Press 3 - to quit
3