2012-04-02 3 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

+0

또한 증기가 설치된 위치를 가정합니다. – crashmstr

답변

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

+0

나는 그것을 컴파일했지만 컴파일하지 못했고 C : \ Users \ Seb \ Documents \ template.cpp는 std :: basic_string , std :: allocator >을 변환 할 수 없다. const char * '에'const char *'를'int system (const char *) ' – Seb1996

+0

@ user1308252 그리고'const char *'를 준비하면 내 업데이트 된 답변처럼 나타낼 수 있습니까? – talnicolas

관련 문제