📄 1211.cpp
字号:
#include<iostream>
#include<fstream>
#include<sstream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
//ofstream cout("out.txt");
class item{
public:
string name;
int father;
item(){}
item(string a,int b){name=a;father=b;}
};
int findfind(vector<item> & vec,string s){
for(int i=0;i<vec.size();i++){
if(s==vec[i].name) return i;
}
return -1;
}
void outputtitle(vector<vector<item> > & vec,int i,int j){
cout<<"Directory of ";
vector<string> temp;
do{
temp.push_back(vec[i][j].name);
j=vec[i][j].father;
i-=1;
}while(j!=-1);
for(i=temp.size()-1;i>=0;i--){
cout<<temp[i];
if(i!=0) cout<<"\\";
else cout<<":\n";
}
}
void deal(vector<string> & vec){
for(int i=0;i<vec.size();i++){
while(vec[i].length()<8) vec[i].insert(vec[i].end(),' ');
}
}
int main(){
//ifstream cin("in.txt");
string input,s1,s2;
cout<<"Problem 5 by team x\n";
vector<vector<item> > vec(5010);
vec[0].push_back(item("root",-1));
int i,j,deep=0,pz=0;
while(getline(cin,input)){
cout<<"Command: "<<input<<endl;
istringstream is(input);
is>>s1;
if(s1=="up"){
if(deep==0) cout<<"Cannot move up from root directory\n";
else {pz=vec[deep][pz].father;deep-=1;}
}
else if(s1=="cd"){
is>>s2;
i=findfind(vec[deep+1],s2);
if(i==-1) cout<<"Subdirectory does not exist\n";
else {pz=i;deep+=1;}
}
else if(s1=="mkdir"){
is>>s2;
i=findfind(vec[deep+1],s2);
if(i!=-1) cout<<"Subdirectory already exists\n";
else {vec[deep+1].push_back(item(s2,pz));}
}
else if(s1=="dir"){
outputtitle(vec,deep,pz);
vector<string> temp;
for(j=0;j<vec[deep+1].size();j++){
if(vec[deep+1][j].father==pz)
temp.push_back(vec[deep+1][j].name);
}
if(temp.size()==0) cout<<"No subdirectories\n";
else {
sort(temp.begin(),temp.end());
deal(temp);
for(j=0;j<temp.size();j++){
if(j%10==9||j==temp.size()-1){
while(temp[j][temp[j].length()-1]==' ') temp[j].erase(temp[j].end()-1);
cout<<temp[j]<<endl;
}
else cout<<temp[j];
}
}
}
}
cout<<"End of problem 5 by team x\n";
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -