С++, консольный толковый словарь, поиск слова и его значения по букве
У меня есть текстовый файл со словами и их определениями, так же в файле присутствует точка с запятой, разделяющяя слово и значение и разное количество пробелов между ними. Каждое слово с определением в новой строке. Это выглядит так:
apple; edible fruit produced by an apple tree
dog;common animal with four legs, especially kept by people as a pet or to hunt or guard
light; the natural agent that stimulates sight and makes things visible
Мне нужно задать тип, как я хочу искать слово: по первой букве, по любой букве из слова или по последней букве. Затем поместите это слово на экран с его определением в формате типа «слово - определение» (если есть другие слова, начинающиеся с той же буквы, поместить таковые все) У меня есть код, но я не знаю как правильно читать из файла, а затем искать по буквам. Спасибо за вашу помощь.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(){
ifstream input;
input.open("dictionary.txt");
if(!input.is_open()){
cout << "Error" << endl;
}
else{
char ch;
string str;
for (int i = 0; i < 3; i++){
cout << "Reading file";
cout << " " << i << endl;
sleep(0);
system("cls");
}
cout << "File was open" << endl;
sleep(0);
cout.flush();
system("cls");
int choise;
menu:
cout << "1. Starting\n2. Containing\n3. Ending\n4. Stop\nInput your choise: ";
cin >> choise;
system("cls");
switch(choise){
case 1:{ // searching by 1 letter
cout << "Input letter: ";
goto menu;
}
case 2:{ // searching by any letter in word
goto menu;
}
case 3:{ // searching by last letter
goto menu;
}
case 4:{
system("cls");
cout << "Closing file" << endl;
sleep(2);
break;
}
default:{
cout << "Input 1-4!" << endl;
goto menu;
}
}
}
input.close();
}