这是我关于StackOverflow的第一个问题,我真的很感激我能得到的任何帮助。
我有一个带有德语单词的文件,其英文翻译在每一行用分号分隔。
它看起来像这样:
Hund;dog
Katze;cat
Pferd;horse
Esel;donkey
Fisch;fish
Vogel;bird
我创建了以下结构:
struct Entry
{
string english = "empty";
string german = "empty" ;
};
我要做的是创建一个函数,将每行的第一个单词复制到字符串german
,然后跳过分号并将行中的第二个单词复制到字符串{{1}这应该逐行完成变量类型english
的数组。
这是我创建的功能 - 当然它缺少几行可以进行实际复制。 :)
Entry
提前致谢。
答案 0 :(得分:1)
使用string.find()
和string.substr()
的组合,您可以使用分隔符拆分字符串。使用getline
,您可以逐行读取文件。然后,您需要创建新的结构并将它们添加到数组中。在此代码的主要部分,做一些谷歌搜索到数组,你可以自己弄清楚其余的(SO不是代码编写服务)。欢迎来到SO!
string line;
string english, german;
int delimiterpos;
Entry mEntry;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
//line now consists of the german;english
delimiterpos = line.find(";");
german = line.substr(0,delimiterpos);
english = line.substr(delimiterpos+1,line.size());
//create a new struct and add it to array.
mEntry = new Entry();
mEntry.german= german;
mEntry.english = english;
// add to some array here
}
myfile.close();
}
else cout << "Unable to open file";