FileStorage Read String Start With Number Need Quotation Mark 读取数字开头的字符串需要加引号

 

复制代码
    // Write data
    FileStorage fs("test.yml", FileStorage::WRITE);
    fs << "MyString" << "123abc";
    fs.release();

    // Read data
    FileStorage fs2("test.yml", FileStorage::READ);
    string str = fs2["MyString"];
    cout << "MyString = " << str << endl;
    fs2.release();
复制代码

 

In OpenCV, the FileStorage class can read and write data in the file. If you write the string "123abc" into the file, it will shows with quotation mark in the file. Now I want to read this string from the file into a string variable, you need to keep the quotation mark in the file which should be see as follows:

MyString: "123abc"

 

Now it can be read without problem, but if you change it to the followings:

MyString: 123abc

 

This will not gonna work this time, but if the string is not start with a number, it will work. I might treat it as a bug in the OpenCV. The three different situation is as follows:

MyString: "123abc"    // Work
MyString: 123abc      // NOT work
MyString: abc123      // Work

 

In sum, when you want to read a string into a variable, if it starts with a number, you need to add the quotation marker to the whole string in the file.

 

posted @   Grandyang  阅读(678)  评论(0)    收藏  举报
Fork me on GitHub

喜欢请打赏

扫描二维码打赏

Venmo 打赏

点击右上角即可分享
微信分享提示