C++ 阅读多个列表
我正在做一个项目,我需要从一个文本文件中读取多个列表。除了读取它们之外,它还报告了基于读入的INT的一些计算。文件读取在列表开头的哨兵处结束 我用来测试的列表是:C++ 阅读多个列表,c++,list,C++,List,我正在做一个项目,我需要从一个文本文件中读取多个列表。除了读取它们之外,它还报告了基于读入的INT的一些计算。文件读取在列表开头的哨兵处结束 我用来测试的列表是: 9999 //sent value 636.9 // number to be ignored First 4 8 15 16 23 42 Second 0.0 9999 我遇到的问题是,我的代码正确地读取并存储了第一个列表的数据,但是当循环再次执行时,它不会读取第二个列表 我的主要循环是: infile >> sen
9999 //sent value
636.9 // number to be ignored
First
4
8
15
16
23
42
Second
0.0
9999
我遇到的问题是,我的代码正确地读取并存储了第一个列表的数据,但是当循环再次执行时,它不会读取第二个列表
我的主要循环是:
infile >> sent;
infile >> inX;
while (!infile.fail())
{
inX = 0;
while (inX != sent)
{
int dSize = 0;
storeNames(listNames, infile);
ReadData(theData, infile);
cout << listNames[count] << endl;
cout << "Size is\t\t\t" << theData.size() << endl;
if (theData.size() >= 1)
{
ComputeStats(theData, meanValue, secondHigh);
DisplayStats(meanValue, secondHigh);
dSize = theData.size();
inX = theData[dSize - 1];
}
theData.clear();
count++;
}
}
infle>>已发送;
infle>>inX;
而(!infle.fail())
{
inX=0;
while(inX!=已发送)
{
int-dSize=0;
店名(列表名、填充);
读取数据(数据、填充);
姓名;
listNames.push_back(名称);
}
非常感谢您的帮助
while(在>>数字中)
考虑到上面的代码,您是否在流失败后恢复流状态?readData将消耗所有内容,之后需要恢复流的状态,如果您想再次读取,请将其向后移动
可以找到正在恢复的istream状态
是否需要移动seekg取决于是否要再次使用相同的数据,否则可能需要将流指针移动到下一个数据节
while(在>>数字中)
考虑到上面的代码,您是否在流失败后恢复流状态?readData将消耗所有内容,之后需要恢复流的状态,如果您想再次读取,请将其向后移动
可以找到正在恢复的istream状态
是否需要移动seekg取决于是否要再次使用相同的数据,否则可能需要将流指针移动到下一个数据节
while(在>>数字中)
考虑到上面的代码,您是否在流失败后恢复流状态?readData将消耗所有内容,之后需要恢复流的状态,如果您想再次读取,请将其向后移动
可以找到正在恢复的istream状态
是否需要移动seekg取决于是否要再次使用相同的数据,否则可能需要将流指针移动到下一个数据节
while(在>>数字中)
考虑到上面的代码,您是否在流失败后恢复流状态?readData将消耗所有内容,之后需要恢复流的状态,如果您想再次读取,请将其向后移动
可以找到正在恢复的istream状态
是否需要移动seekg取决于是否要再次使用相同的数据,否则可能需要将流指针移动到下一个数据节。输入文件似乎有问题。最好的方法是使用调试器进行逐步调试。您能显示您的输入文件吗?我已经使用了调试器,这是input文件.9999 636.9前4 8 15 16 23 42秒0.0 9999似乎是您的输入文件的问题。最好的做法是使用调试器逐步调试。您能显示您的输入文件吗?我已经使用了调试器,这是输入文件。9999 636.9前4 8 15 16 23 42秒0.0 9999似乎是y的问题我们的输入文件。最好的办法是使用调试器逐步调试。你能显示你的输入文件吗?我已经使用了调试器,这是输入文件。9999636.9前4 8 15 16 23 42秒0.0 9999似乎是输入文件的问题。最好的办法是使用调试器逐步调试。你能显示你的输入文件吗le?我已经完成了调试器,这是输入文件。9999 636.9 First 4 8 15 16 23 42 Second 0.0 9999我想我不知道。我该怎么做?我不知道。我该怎么做?我不知道。我该怎么做?我不知道。我该怎么做?我不知道。我该怎么做?
void ReadData(vector<int>& theData, ifstream& in)
{
if (in.is_open())
{
int number;
while (in >> number)
{
theData.push_back(number);
}
}
}
void storeNames(vector<string>& listNames, ifstream& in)
{
string name;
in >> name;
listNames.push_back(name);
}