【发布时间】:2017-03-25 22:15:59
【问题描述】:
我正在尝试在 C++ 中制作字典,但无法在“=”分隔符上拆分文本文件。理想情况下,它将是两个数组。我想将行的“=”的左侧放入array[0],将右侧放入array[1],然后通过预制使用array[0]作为键,使用array[1]作为值插入功能,例如。字典.插入(数组 [0],数组 [1])。我已经构建了字典逻辑,但是在拆分行时遇到了麻烦。
这是我的(糟糕的)代码,它没有使用等号作为分隔符,因此将“=”放入数组 [1]:
int main() {
Dictionary englishToEsperanto;
ifstream infile("Dictionary.txt");
string line;
string arr[2];
if (infile.is_open())
{
while (getline(infile, line))
{
int i = 0;
stringstream ssin(line);
while (ssin.good() && i < 2) {
ssin >> arr[i];
++i;
}
for (i = 0; i < 2; i++) {
cout << arr[i] << ' ';
}
cout << endl;
}
infile.close();
}
else
{
cout << "Error opening file";
}
return 0;
}
这是文本文件的前几行:
aback, to take = surprizi.
abaft = posta parto.
abandon = forlasi.
abase = humiligi. [error in book: humilgi]
abash = hontigi.
abate (lower) = mallevi.
abate (speed) = malakceli.
abbey = abatejo.
abbot = abato.
abbreviate = mallongigi.
abdicate = demeti la reĝecon.
abdomen = ventro.
感谢收看。
【问题讨论】:
-
您可以使用
std::getline(infile, word, '=')读取密钥并使用std::getline(infile, word);获取该行的其余部分。
标签: c++ arrays dictionary