波浪号 ~ 在 Mac 上使用 fstream 时会遇到麻烦

Tilde ~ makes trouble when using fstream on Mac

我不太清楚我是有 IDE/toolchain 问题、Mac 问题还是 C++ 问题:

我想用 ofstream 保存一个文件。这按预期工作。但是,当我保存到带有波浪号(如“~/Desktop/test.txt”)的文件路径时,ofstream::good() 报告错误。但是,我可以成功地使用像“/Users/Michael/Desktop/test.txt”这样的路径。

这适用于 Xcode 调试器、运行 和 Eclipse,以及从控制台直接调用可执行文件。

这里的波浪号“~”有什么问题?

没有路径 ~,这是由您的 shell 解释的。您需要将其扩展到环境变量 HOME 设置的任何值。

如果您通过 shell 调用您的工具,这将提前为您扩展。如果您在 Xcode 之内,则需要明确指定 $HOME