某人有个不好的习惯,每次做题之前都喜欢新建一个今天的时间为名字的文件夹,然后在这个文件夹里新建“A题” “B题”等文件夹,最后才在“A题”目录下新建“A.cpp",这样固然很美观,但是每次都这样做不免繁琐,于是某人就问我能不能自动新建这样的目录。
要新建这样的目录需要用到这些数据:
目录路径,系统时间。
获取系统时间可以使用ctime函数,先定义一个time_t t=time(NULL)就获取了当前的系统时间,其格式是char *,再作适当处理就可以生成目录的名字了。
而C++里面刚好有这样用于调试的变量。__FILE__存储的是文件的目录,只要拿到这个程序的目录,就可以在这个目录下新建某人想要的目录了。
参考命令
1.新建目录 cmd:md +目录路径
2.新建文件 C++命令 ofstream file(文件路径)
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"Input the number of porblems:\n";
struct tm *local;
time_t t=time(NULL);
//printf("%s",ctime(&t));
string temp=ctime(&t);
string s2;
int sum=1;
for(int i=0;i<temp.size();i++)
{
if(sum==2 || sum==5 || sum==3)
s2+=temp[i];
if(temp[i]==' ')
sum++;
}
s2.erase(s2.end()-1);
for(auto &c:s2)
c=(c==' '?'-':c);
//cout<<s2<<endl;
int n;
cin>>n;
string s4="md ",s1=__FILE__,s3="\\";
string::iterator it;
for(it=s1.end()-1;;it--)
if(*it!='\\')
s1.erase(it);
else break;
s1.erase(it);
string s=s4+s1+s3+s2;
//cout<<s<<endl;
system(s.c_str());
for(int i=0;i<n;i++)
{
string s5="\\Problem-A";
s5[s5.size()-1]='A'+i;
string ans=s+s5;
//cout<<ans<<endl;
system(ans.c_str());
string s6="\\A.cpp";
s6[1]='A'+i;
ans+=s6;
for(auto &c:ans)
c=(c=='\\'?'/':c);
for(it=ans.begin();;it++)
if(*it==' ')
break;
ans.erase(ans.begin(),it+1);
//cout<<ans<<endl;
ofstream file(ans);
}
return 0;
}