C++ 北约字母c++;大堆

C++ 北约字母c++;大堆,c++,arrays,string,for-loop,alphabet,C++,Arrays,String,For Loop,Alphabet,我必须将大写字符转换为对应的北约拼音字母。使用两个数组 letters.txt是一个包含字母a-Z的文本文件 words.txt是一个带有北约拼音字母Alpha Zulu的文本文件 (例如:A=Alpha,B=Bravo…) 我的问题是,每次转换一封信时,只打印祖鲁语 我必须向该程序添加或更改什么才能正确转换? 这是密码 #include <iostream> #include <string> #include <fstream> #include

我必须将大写字符转换为对应的北约拼音字母。使用两个数组

letters.txt是一个包含字母a-Z的文本文件

words.txt是一个带有北约拼音字母Alpha Zulu的文本文件

(例如:A=Alpha,B=Bravo…)

我的问题是,每次转换一封信时,只打印祖鲁语

我必须向该程序添加或更改什么才能正确转换?

这是密码

 #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;
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
ifstream输入文件;
open(“words.txt”);
字符串字;
while(输入文件>>word)
{
}
inputFile.open(“letters.txt”);
字符字母;
while(输入文件>>字母)
{
}
字符选择;
字符字符2;
char Alpha[26]={letter};
字符串字[26]={word};
做
{

你需要合适的容器来装你的字母和单词吗

现在,您正在从文件中读取它们,将每个单词/字母放入一个变量(变量名为wordletter),但每个单词/字母都会覆盖上一个(这就是为什么您只看到最后一个单词Zulu

要真正读取并保存它们,您需要一个
向量
数组

单词示例(对字母执行相同操作):

std::向量词;
保留(26);//你知道你需要26个单词,提前保留记忆
字符串字;
while(输入文件>>word)
{
单词。推回(单词);
}
像这样,你所有的单词都被放入你的容器单词

然后继续您的算法;-)

,而(inputFile>>word){}
只会在每次迭代中替换上一个
单词。您只存储一个单词,即最后一次读取。
字符串字[26]={word}
定义了一个由26个
字符串组成的数组,第一个单词是存储在
word
中的任何字符串,其余是空字符串。直接读入
单词和
字母。
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);
}