我需要从CSV文件中读取数据,该文件每秒更新一次,并在同一单元格和行中使用新数据。
我的意思是: 例如,我在第一行中有1个单元格然后我已经有2个等等。但是在同一行和列中所有内容都被更改。
struct Node
{
double number;
}
void readData(vector<Node>&Values)
{
Node Data;
ifstream file("file.csv");
if (file.good())
cout << "file ok";
file >> Data.number;
Values.push_back(Data);
}
int main()
{
vector<Node>Values;
while (true)
{
readData(Values);
_sleep(1000);
}
}
我遇到的问题是它每秒都会读取新数据,但它会从向量中保存相同的数字。如果数字为1,即使数字已被改变10次,也会保存相同的数字数百次。
我应该在读取文件中更改什么才能使用可以更新的数据,因为csv文件已打开并更新,我无法关闭它? 我很确定它可以解决我在互联网上找不到任何解决方案的问题。
提前谢谢!
答案 0 :(得分:0)
我会简化代码;
double ReadData()
{
double val;
ifstream file("file.csv");
if (!file.good())
{// Check if valid, return Error Code
return 0;
}
file >> val;
return val;
}
int main()
{
vector<double> values;
while (true)
{
double retVal = ReadData();
if (retVal == 0)
{// Whatever you defined the error code as
break;
}
values.push_back(retVal);
_sleep(1000);
}
}
如果您真的想要这个结构,我只需返回数据并将其添加到主循环中的结构中。