如何将由分号(;)表示的文件中的单词复制到C ++中的数组中?

时间:2015-12-06 22:38:14

标签: c++ arrays file copy

这是我关于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

提前致谢。

1 个答案:

答案 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";