【发布时间】:2016-03-30 13:38:27
【问题描述】:
在目前的程序中,我希望从文本文件中逐行读取文本,从每一行中提取数据。文本文件中的每一行都包含一个字母,例如“A”,后跟一个冒号“:”,然后是一个整数,例如“2”。程序中应读取数据的函数目前如下所示:
void readFile()
{
std::ifstream aFile;
std::string alldata;
std::string letter;
aFile.open("KeyPopularity.txt");
while (std::getline(aFile, alldata))
{
letter = alldata[0];
for (int i = 0; i < keyboardKeys.size(); i++)
{
if (keyboardKeys[i].character==letter)
{
keyboardKeys[i].noOfPresses = int(alldata[2]);
}
std::cout << letter << " ";
std::cout << int(alldata[2]) << "\n";
}
}
aFile.clear();
}
然而,位置 0 (alldata[0]) 处的 alldata 变量不是仅列出单个字符,即字母在字母之前列出了一个数字,例如 87。 87 W 而不仅仅是 W。问题是为什么会发生这种情况,有没有办法从文本文件中的每一行逐行提取数据,以获得行字符串位置 0 处的字母和位置处的数字2的行字符串?
【问题讨论】: