博客主页:https://blog.csdn.net/weixin_46094737?type=blog
欢迎评论⭐留言 如有错误敬请指正!
本文由小学生廉原创,首发于 CSDN🙉🙉🙉
未来很长,值得我们全力奔赴更美好的生活!💞💞💞
文件重定向简单的说就是由键盘输入变为由文件输入,由输出到屏幕变为输出到文件。
freopen("文件名","打开方式",stdout);
freopen("stdout.txt","a",stdout);
含义:简单理解,就是将我们的标准输出printf()函数在终端中的打印结果,打印到我们指定的文件中去。
freopen("文件名","打开方式",stdin);
freopen("stdin.txt","r",stdin);
含义:简单理解,就是将我们的标准输入scanf()函数在终端中的输入,转变成我们从指定的文件中直接获取需要的字符。
1、在一条命令中,输入文件名和输出文件名不能相同;
2、重定向运算符连接一个可执行文件和一个数据文件,不能用于连接一个数据文件和另一个数据文件,也不能用于连接一个可执行程序和另一个可执行程序;
3、使用重定向运算符不能读取多个文件的输入,也不能把输出定向至多个文件;
源代码:
- #include
-
- int main()
- {
- int stdout_value = dup(fileno(stdout));//定义添加一个标记
- printf("开始进行重定向:%d\n",stdout_value);
-
- int a,b;
- freopen("stdout.txt","a",stdout);
- freopen("stdin.txt","r",stdin);
-
- scanf("%d",&a);
- printf("%d",a);
- scanf("%d",&b);
- printf("%d",b);
-
- dup2(stdout_value, fileno(stdout));//恢复控制台输出
- close(stdout_value);
-
- printf("好好学习,天天向上!\n");//恢复控制台输出
- printf("当你看到这行话,就说明重定向已经结束啦!");
-
- return 0;
- }
运行结果:


时间的基本概念以及定义大家都很熟悉,这里便不再赘述。
注意在使用时,添加相关头文件:
- #include
- #include
- #include
- #include
time_t t1;//定义一个时间类型变量
time(&t1);//t1保存时间戳
打印时间戳:
printf("时间戳为:%lld",t1);
例如一下示例:
- #include
- #include
- #include
-
- int main()
- {
- time_t t1;
- printf("当前时间戳为:%lld",t1);
- return 0;
- }
运行结果:

需要注意一点:
在c语言中时间戳是指从1970年1月1日0时0分0秒到此刻的时间(秒数)。
我们现在有一个格式化后的宇符串,需要将里面的时间信息获取出来,比如2012年12月12日,我们要将年月日分别取出来,这种需求就叫做解析时间。
先格式化出一个需要被解析的时间字符串:
- //1. 定义时间戳普通变量
- time_t t_abc;
- //2. 通过time()函数,获取时间戳
- time(&t_abc);
- //3. 定义日历指针变量
-
- struct tm * tdata;
- //4. 通过localtime()函数,将时间戳转换为日历信息
- tdata=localtime(&t_abc);
- //5. 通过asctime()函数,将日历信息格式日期的形式输出
- puts(asctime(tdata));
- //6. 通过ctime()函数,直接将时间戳以格式日期的形式输出
- puts(ctime(&t_abc));
- //按照格式定义,自主选择格式化输出日期
- char str_time[30];
- size_t ret=strftime(str_time,30,"%m",tdata);
- printf("rer=%d, str_time长度=%d\n",ret,strlen(str_time));
- printf("strftime()转换后:%s\n",str_time);
- void change_time()//计算时间差
- {
- time_t t1 = time(NULL);
- Sleep(1000);//注意事项:1、Sleep首字母大写 2、()里面的参数为毫秒 3、头文件为#include
- time_t t2 = time(NULL);
- unsigned int ret= t2 - t1;
- printf("%d",ret);
- }