2012-04-02 21 views
0

基本上我试图复制一个文件从一个地方到另一个,但我希望用户能够改变是因为它的蒸汽游戏,每个人都有一个不同的用户名。复制C++中的文件与变量目录

system("copy GameMenu.res C:\\Program Files (x86)\\Steam\\steamapps\\"login"\\counter-strike source\\cstrike\\resource\\GameMenu.res"); 

在这条线的地方说:“登陆”我希望人们能够输入自己的用户名,所以它仍然是目录或任何东西叫做的一部分。请帮帮我。

这里是这里的代码是整个代码,所以你可以看到什么地方错了:

#include <iostream> 
#include <cmath> 
#include <string> 
int main() 
{ 
using namespace std; 

string login; 
int drive; 

cout << "What is your steam login??" << endl; 

cin >> login; 

system("timeout 2"); 

system("cls"); 

cout << "Your files are being copied " << login << "." << endl; 

system("copy GameMenu.res C:\\Program Files (x86)\\Steam\\steamapps\\"login"\\counter-strike source\\cstrike\\resource\\GameMenu.res"); 

system("pause"); 

system("cls"); 

system("timeout 1"); 

return 0; 

} 
+0

你也需要在'''中查看复制目标的位置,因为它有空格。 – crashmstr 2012-04-02 14:32:23

+0

另外,你假设它们已经安装了蒸汽。 – crashmstr 2012-04-02 15:02:52

回答

2

你可以使用串联为您的登录名的问题准备好您的字符串,然后将其转换为const char *

string str = "copy GameMenu.res \"C:\\Program Files (x86)\\Steam\\steamapps\\" + login + "\\counter-strike source\\cstrike\\resource\\GameMenu.res\""; 
const char * c = str.c_str(); 

system(c); 

同样作为评论中提到的crashmstr,因为你的路径中有空格可能会有问题,所以请考虑遵循他的建议。

+0

这不行,'system'采用const char *作为参数 – jrok 2012-04-02 14:32:27

+0

我试过,但它没有编译,我得到这个错误C:\ Users \ Seb \ Documents \ template.cpp不能转换'std :: basic_string ,std :: allocator > 'const char *'作为参数'1'到'int system(const char *)' – Seb1996 2012-04-02 14:35:32

+0

@ user1308252,如果你准备你的'const char *'之前像我更新的答案? – talnicolas 2012-04-02 14:37:57