所有人都好......
对不起我的英语,但说西班牙语......
在本周,为这个项目进行学习和工作,我想创建一个软件来制作文件(.us)......
示例
char name[50]; //Or string
cin>>name;
ofstream PlayerPawn("D:\\UDK\\UDK_XXX\\Development\\Src\\" + name+"\\Classes\\_PlayerPawn.us");
但编译器在运算符二进制加
中有错误用于在特定目录中创建文件的任何替代,示例或其他内容
再见,再见!答案 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
,但是你不知道它会做什么。