我正在使用sscanf通过缓冲区从文件中读取数据,一切正常,直到我添加此行:
VideoWriter video("test0001.avi",CV_FOURCC('H','2','6','4'),30.0,c,true);
如果我对上面的行进行注释,则sscanf会得到正确的结果,但是,如果我使用我的videoWriter(namespace cv),sscanf似乎无法读取该行。 我使用此代码阅读:
cout << test.LineBuffer << endl;
if ( (sscanf(test.LineBuffer, "%*f {\"x\":%f,\"y\":%f,\"o\":%f}", &xi, &yi, &oi )) != 3 )
{
cout <<"read " << sscanf(test.LineBuffer, "%*f {\"x\":%f,\"y\":%f,\"o\":%f}", &xi, &yi, &oi ) << " numbers \n " <<endl;
fprintf(stderr,"error ");
return -1;
}
我得到了这个结果:
1440074599.111 {"x":1.538,"y":2.095,"o":-0.699}
read 0 numbers
我们可以看到test.Linebuffer包含期望值。但是如果我之前初始化了我的VideoWriter,即使它完全没有连接到其他变量,sscanf也不会读取它