Нато алфавит в массиве c ++

Я должен преобразовать заглавную букву в ее аналог фонетического алфавита НАТО. Используя два массива.

letters.txt — текстовый файл с буквами A-Z

words.txt — текстовый файл с фонетическим алфавитом НАТО Альфа-Зулу

(Пример: A = Альфа, B = Браво …)

У меня проблема в том, что при каждом преобразовании письма печатается только зулу.

Что мне нужно добавить или изменить в этой программе, чтобы она могла правильно конвертировать?

Вот код

 #include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;

int main()
{

ifstream inputFile;
inputFile.open("words.txt");
string word;

while (inputFile >> word)
{
}inputFile.open("letters.txt");
char letter;

while (inputFile >> letter)
{
}

char choice;
char letter2;
char Alpha[26]={letter};
string Words[26]={word};
do
{

cout<<"\nPlease enter a letter"<<endl;
cout<<"Letter: ";
cin>>letter2;

for(int count=0; count < 26; count++)
{

cout<< Words[count];

}

cout<<"\nDo you want to run this program again? <y/n>"<<endl;
cin>>choice;

}
while(choice=='y' || choice=='Y');

return 0;
}

-4

Решение

Вам нужны надлежащие контейнеры для хранения ваших букв и слов.

Прямо сейчас вы читаете их из файлов, помещая каждое слово / букву в переменную (переменные с именем слово а также письмо). Но каждое слово / буква перезаписывает предыдущее (вот почему вы видите только последнее слово, зулус).

Чтобы фактически прочитать и удержать их все, вам нужен вектор или массив.

Пример для слов (то же самое для букв):

std::vector<std::string> words;
words.reserve(26); // you know you need 26 words, reserve memory in advance
string word;

while (inputFile >> word)
{
words.push_back(word);
}

Вот так все твои слова в твой контейнер слова.

Тогда продолжай свой алгоритм 😉

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector