来自CSV的实时数据用C ++读取

时间:2018-01-15 15:36:59

标签: c++

我需要从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文件已打开并更新,我无法关闭它? 我很确定它可以解决我在互联网上找不到任何解决方案的问题。

提前谢谢!

1 个答案:

答案 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);
    }
} 

如果您真的想要这个结构,我只需返回数据并将其添加到主循环中的结构中。