这应该是一个相当微不足道的问题。我试图使用std :: string(或std :: wstring)打开ofstream,并且遇到问题而无法进行凌乱的转换。用std :: string打开一个文件
std::string path = ".../file.txt";
ofstream output;
output.open(path);
理想的情况下,我不希望有手工转换这或涉及C风格字符指针,如果有这样做的更好的方式?
这应该是一个相当微不足道的问题。我试图使用std :: string(或std :: wstring)打开ofstream,并且遇到问题而无法进行凌乱的转换。用std :: string打开一个文件
std::string path = ".../file.txt";
ofstream output;
output.open(path);
理想的情况下,我不希望有手工转换这或涉及C风格字符指针,如果有这样做的更好的方式?
在路径字符串中,使用两个点而不是三个。
此外,您可以使用字符串上的'c_str()'方法来获取底层的C字符串。
output.open(path.c_str());
这应该工作:
output.open(path.c_str())
恐怕这是根本不可能的。你必须使用c_str,是的,它很糟糕。
顺便说一句,使用char *还意味着fstream不支持Unicode文件名......这是一个耻辱。
wfstream for std :: wstring任何人? – KTC 2009-02-08 16:19:51
现货,谢谢。 – Dan 2009-02-08 15:39:48