Ofstream,使用变量来命名

时间:2012-02-27 19:23:22

标签: c++ compiler-construction ofstream

所有人都好......

对不起我的英语,但说西班牙语......

在本周,为这个项目进行学习和工作,我想创建一个软件来制作文件(.us)......

示例

char name[50]; //Or string
cin>>name;

ofstream PlayerPawn("D:\\UDK\\UDK_XXX\\Development\\Src\\" + name+"\\Classes\\_PlayerPawn.us");

但编译器在运算符二进制加

中有错误

用于在特定目录中创建文件的任何替代,示例或其他内容

再见,再见!

2 个答案:

答案 0 :(得分:3)

我相信您希望name成为std::string - 否则,name + [suffix]会尝试将后缀字符串添加到数组中,并且不会编译。如果您确实希望将名称保留为数组,则应使用strcat将字符串附加在一起。

答案 1 :(得分:3)

operator+的任何一方必须是std::string 1 operator+才能连接字符串:

string name;
cin >> name;

ofstream PlayerPawn("D:\\UDK\\UDK_XXX\\Development\\Src\\" + name + "\\Classes\\_PlayerPawn.us");

并使用std::string来表达这些内容;使用std::string时,char*没有缓冲区溢出的危险。


1 实际上它只需要是支持operator+的类类型,而不是std::string,但是你不知道它会做什么。