C++ - 将 BLOB 存储为字符串

C++ - Storing a BLOB as a string

本文关键字:字符串 存储 BLOB C++      更新时间:2023-10-16
可以将

BLOB 存储为C++中的字符串吗?我猜 BLOB 中可能有一个空字符,这可能会导致像 len(( 这样的 std::string 操作失败。我正在尝试将位图存储为 BLOB。

最终,我想将此字符串存储到嵌入式数据库中,并将字符串读回std::string

谢谢。

是的,这很好。std::string必须单独存储长度,以便可以嵌入空字符。只要您有足够的内存,就可以将其存储在字符串中。

但是,在构造字符串时确实需要小心。如果您只是使用像 std::string s = "Hello, world!" 这样的 somethnig ,这是行不通的,因为从 char* 转换只会转到第一个空字符。但是,std::string s("Hello, world!", 14);工作正常。

当然,如果您确实转换回带有data()c_str()char*,您需要确保也抓住长度。