自动生成目录

某人有个不好的习惯,每次做题之前都喜欢新建一个今天的时间为名字的文件夹,然后在这个文件夹里新建“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;
}

  

原文链接: https://www.cnblogs.com/xionglinlin/p/5043002.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    自动生成目录

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/225784

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午12:56
下一篇 2023年2月13日 下午12:56

相关推荐