2009-02-08 65 views
2

这应该是一个相当微不足道的问题。我试图使用std :: string(或std :: wstring)打开ofstream,并且遇到问题而无法进行凌乱的转换。用std :: string打开一个文件

std::string path = ".../file.txt"; 

ofstream output; 

output.open(path); 

理想的情况下,我不希望有手工转换这或涉及C风格字符指针,如果有这样做的更好的方式?

回答

9

在路径字符串中,使用两个点而不是三个。

此外,您可以使用字符串上的'c_str()'方法来获取底层的C字符串。

output.open(path.c_str()); 
+0

现货,谢谢。 – Dan 2009-02-08 15:39:48

2

这应该工作:

output.open(path.c_str())

0

恐怕这是根本不可能的。你必须使用c_str,是的,它很糟糕。

顺便说一句,使用char *还意味着fstream不支持Unicode文件名......这是一个耻辱。

+0

wfstream for std :: wstring任何人? – KTC 2009-02-08 16:19:51