我在stackoverflow中搜索答案,但无法获得近似匹配。我正在序列化驱动器的内容。我正在使用boost :: filesystem :: path进行操作。在Windows OS中存储路径信息的最大值(300只是标称值)应该是多少。
struct raw_event
{
friend std::ifstream& operator >> (std::ifstream& infile, raw_event& raw);
friend std::ofstream& operator << (std::ofstream& outfile, raw_event& raw);
private:
char path_[300];
//
};
答案 0 :(得分:2)
Windows最大路径为260,除非您使用Unicode API。然后它是32767. Source MSDN不确定Boost使用什么,但你不想总是存储32k只是为了确定。有时候从轨道上钻取这个网站。这不是其中之一。
要做一个可变长度的字符串,我通常会使用Pascal样式并将字符串的长度写入文件然后写入字符串,但这是针对二进制文件的。对于文本文件,如问题中的operator<<
所示,您最好使用引号和std::getline
之类的分隔符。