在C++中是可以嵌入shell語言的,在開發時候用到了system語句,在使用system函數時,參數是char類型,如果輸入字元串拼接類型則編譯不通過,比如“system("mv " + file_name +" func_bak.h")”,這樣是錯誤的,需要下面這樣的轉換才可以:
#include <stdlib.h>
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
string str1 = "func_a.h";
string str2 = "func_a_new.h";
char ls_cmd[50];
sprintf(ls_cmd, "mv %s %s", str1.c_str(), str2.c_str());
system(ls_cmd);
return 0;
}