C++:
我定义了一个数组box,内容是不确定的,想把box的第二项储存成char*,
编辑器却报错了,怎么把数组box的第二个字符串元素取出来作为一个char*
型变量?
#include<iostream>
#include<cstdio>
#include<cmath>
#include<vector>
#include<string>
#include<cstdlib>
#include <windows.h>
#include <direct.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
using namespace std;
int main()
{
int running=1;
while(running)
{
cout<<"[input]: ";
string order;
vector<string> box; //定义命令集合(一行)
//读取用户命令 ,输入回车就跳出
while(cin>>order)
{
box.push_back(order);
if(cin.get()=='\n')
break;
}
//模拟cmd中的cd命令,切换目录
if(box[0]=="cd")
{
//获取当前工作目录
char sz[MAX_PATH];
GetCurrentDirectory(MAX_PATH,sz);
cout<<" Before path: "<<sz<<endl;
char *path=box[1]; //这里报错了
chdir(path); //更换工作目录
cout<<" New path:"<<endl;
}
return 0;
}
/*预想效果:
[input]: cd test
Before path: E:\cd
New path:E\cd\test
可它报错了,程序如果改成两次输入:
if(box[0]=="cd")
{
//获取当前工作目录
char sz[MAX_PATH];
GetCurrentDirectory(MAX_PATH,sz);
cout<<" Before path: "<<sz<<endl;
cout<<" Enter new path: ";
char *path;
cin>>path; //成功!
chdir(path); //更换工作目录
}
就可以,但我就想一次输入,请问各位大佬解方法
*/