Проблемы перевода / транслитерации

Я работаю над программой перевода / транслитерации, которая читает английскую историю и переводит ее на эльфийский, используя английский / эльфийский словарь. После кода, показанного ниже, я объясняю полученную ошибку.

У меня много кода, я не уверен, должен ли я публиковать все это, но я опубликую то, что я считаю достаточным. Извиняюсь, если мой код кажется странным — но я только начинающий.

Eсть главный файл, заголовок файл с двумя классами: Переводчик а также толковый словарь, и CPP файл для реализации функций класса.

У меня есть конструктор, который читает в файле словаря dictFileName и копирует английские слова в Английское слово, и эльфийские слова в elvishWord:

Translator::Translator(const char dictFileName[]) : dict(dictFileName)
{
char englishWord[2000][50];
char temp_eng_word[50];
char temp_elv_word[50];
char elvishWord[2000][50];
int num_entries;

fstream str;

str.open(dictFileName, ios::in);
int i;

while (!str.fail())
{
for (i=0; i< 2000; i++)
{
str>> temp_eng_word;
str>> temp_elv_word;
strcpy(englishWord[i],temp_eng_word);
strcpy(elvishWord[i],temp_elv_word);
}

num_entries = i;

}

str.close();

}

В основном файле английские строки читаются в toElvish функции и токенизированы в массив слов, temp_eng_words.

В этой функции toElvish я вызываю другую функцию; перевод, который читает в temp_eng_words и должен вернуть эльфийские слова:

char Translator::toElvish(char elvish_line[],const char english_line[])

{
int j=0;

char temp_eng_words[2000][50];
//char temp_elv_words[2000][50]; NOT SURE IF I NEED THIS

std::string str = english_line;
std::istringstream stm(str);
string word;
while( stm >> word) // read white-space delimited tokens one by one
{
int k=0;
strcpy (temp_eng_words[k],word.c_str());

k++;

}

for (int i=0; i<2000;i++) // ERROR: out_s was not declared in this scope
{
Dictionary::translate (out_s,temp_eng_words[i]); // ERROR RELATES TO THIS LINE
}

}

Это переведите функция:

char Dictionary::translate (char out_s[], const char s[])
{

int i;

for (i=0;i < numEntries; i++)
{
if (strcmp(englishWord[i], s)==0)
break;
}

if (i<numEntries)
strcpy(out_s,elvishWord[i]);
}

Моя проблема в том, что когда я запускаю программу, я получаю сообщение об ошибке* out_s не был объявлен в этой области *».

Если вы прочитали все это, спасибо; Любые предложения / подсказки будут высоко ценится. 🙂

2

Решение

Задача ещё не решена.

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

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

По вопросам рекламы [email protected]