我有一个目标路径和文件名作为字符串,我想用C ++来连接它们。
有没有办法做到这一点并让Windows或UNIX系统/和\之间的程序/编译器选择?
我有一个目标路径和文件名作为字符串,我想用C ++来连接它们。
有没有办法做到这一点并让Windows或UNIX系统/和\之间的程序/编译器选择?
如果你想在编译的时候,你当然可以做这样的事情去做
#ifdef WIN32
#define OS_SEP '\\'
#else
#define OS_SEP '/'
#endif
或者你可以只用“/”,事情会工作得很好的窗口(除了解析字符串,并只与工作旧的程序“\”)。 如果显示给用户,这样,它只是看起来很滑稽。
正如通常的情况一样,升压有一个图书馆,你想要做什么。 这里 “山教程。
使用“/”内部随处可见。 然后写一个组的其中进口任一形式的路径成使用“/”效用函数。 写一个有系统的具体的ifdef和必要的转换一个“本地路径”功能。 可按需调用。
一个简单的方法做你问什么是有使用预处理魔法确定平台小(可能是内联)函数( #ifdef WIN32
等),并返回适当的分隔符。
答案是有点复杂,因为还有比分隔符其他更显著的差异。 Windows文件系统可以有多个根(C:\ d:\等),而整个FS植根于/在Unix的土地。
最好的建议可能是使用boost::filesystem
。