我正在尝试在可执行文件运行时将c ++可执行文件自我复制到用户驱动器,但是此后,我想像这样显示它std::cout << "Filepath:" << actualpath[i];
,但是每个字符都有文件名迭代,但是我需要复制自我程序到另一个地方
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR szEXEPath[MAX_PATH];
char actualpath[MAX_PATH];
GetModuleFileName(NULL, szEXEPath, MAX_PATH);
for (int i = 0; szEXEPath[i] != 0; i++){
actualpath[i] = szEXEPath[i];
std::cout << "Filepath:" << actualpath[i];
}
return 0;
}
答案 0 :(得分:0)
您需要移动行
std::cout << "Filepath:" << actualpath[i];
在for
循环之后。但是,您必须:
actualpath
。i
的最后一个值。您可以在i
循环之前定义for
,以便能够使用它来使actualpath
终止。
int i = 0;
for ( ; szEXEPath[i] != 0; i++ ){
actualpath[i] = szEXEPath[i];
}
actualpath[i] = '\0';
std::cout << "Filepath:" << actualpath;
PS 显然,这不能解决主要任务-复制文件。