• c语言文件之重定向以及时间time()函数知识点(一)总结


    博客主页:https://blog.csdn.net/weixin_46094737?type=blog
    欢迎评论⭐留言  如有错误敬请指正!
    本文由小学生廉原创,首发于 CSDN🙉🙉🙉
    未来很长,值得我们全力奔赴更美好的生活!💞💞💞 

    ①、重定向 

    一、重定向定义:

    文件重定向简单的说就是由键盘输入变为由文件输入,由输出到屏幕变为输出到文件

    1、输出重定向格式:

    freopen("文件名","打开方式",stdout); 

    freopen("stdout.txt","a",stdout);

    含义:简单理解,就是将我们的标准输出printf()函数在终端中的打印结果,打印到我们指定的文件中去。

    2、输入重定向格式:

    freopen("文件名","打开方式",stdin); 

    freopen("stdin.txt","r",stdin);

     含义:简单理解,就是将我们的标准输入scanf()函数在终端中的输入,转变成我们从指定的文件中直接获取需要的字符。

    二、重定向的注意事项

    1、在一条命令中,输入文件名和输出文件名不能相同;
    2、重定向运算符连接一个可执行文件和一个数据文件,不能用于连接一个数据文件和另一个数据文件,也不能用于连接一个可执行程序和另一个可执行程序;
    3、使用重定向运算符不能读取多个文件的输入,也不能把输出定向至多个文件;

    源代码:

    1. #include
    2. int main()
    3. {
    4. int stdout_value = dup(fileno(stdout));//定义添加一个标记
    5. printf("开始进行重定向:%d\n",stdout_value);
    6. int a,b;
    7. freopen("stdout.txt","a",stdout);
    8. freopen("stdin.txt","r",stdin);
    9. scanf("%d",&a);
    10. printf("%d",a);
    11. scanf("%d",&b);
    12. printf("%d",b);
    13. dup2(stdout_value, fileno(stdout));//恢复控制台输出
    14. close(stdout_value);
    15. printf("好好学习,天天向上!\n");//恢复控制台输出
    16. printf("当你看到这行话,就说明重定向已经结束啦!");
    17. return 0;
    18. }

    运行结果:

    ②、时间time()函数

     时间的基本概念以及定义大家都很熟悉,这里便不再赘述。

    注意在使用时,添加相关头文件:

    1. #include
    2. #include
    3. #include
    4. #include

    time_t t1;//定义一个时间类型变量 

    time(&t1);//t1保存时间戳 

    打印时间戳:

    printf("时间戳为:%lld",t1); 

    例如一下示例:

    1. #include
    2. #include
    3. #include
    4. int main()
    5. {
    6. time_t t1;
    7. printf("当前时间戳为:%lld",t1);
    8. return 0;
    9. }

    运行结果:

     需要注意一点:

    在c语言中时间戳是指从1970年1月1日0时0分0秒到此刻的时间(秒数)。

    解析时间:

    我们现在有一个格式化后的宇符串,需要将里面的时间信息获取出来,比如2012年12月12日,我们要将年月日分别取出来,这种需求就叫做解析时间。
    先格式化出一个需要被解析的时间字符串:

    1. //1. 定义时间戳普通变量 
    2. time_t t_abc;
    3. //2. 通过time()函数,获取时间戳 
    4. time(&t_abc);
    5. //3. 定义日历指针变量 
    6. struct tm * tdata;
    7. //4. 通过localtime()函数,将时间戳转换为日历信息 
    8. tdata=localtime(&t_abc);
    9. //5. 通过asctime()函数,将日历信息格式日期的形式输出 
    10. puts(asctime(tdata));
    11. //6. 通过ctime()函数,直接将时间戳以格式日期的形式输出 
    12. puts(ctime(&t_abc));
    13. //按照格式定义,自主选择格式化输出日期 
    1. char str_time[30];    
    2. size_t ret=strftime(str_time,30,"%m",tdata);
    3. printf("rer=%d,  str_time长度=%d\n",ret,strlen(str_time));
    4. printf("strftime()转换后:%s\n",str_time);

    计算时间差:

    1. void change_time()//计算时间差
    2. {
    3. time_t t1 = time(NULL);
    4. Sleep(1000);//注意事项:1、Sleep首字母大写 2、()里面的参数为毫秒 3、头文件为#include
    5. time_t t2 = time(NULL);
    6. unsigned int ret= t2 - t1;
    7. printf("%d",ret);
    8. }

     

  • 相关阅读:
    C 学生管理系统 删除指定学生节点(一般情况)
    SpringMVC统一异常处理配置
    【从Python基础到深度学习】 8. VIM两种状态
    Web应用安全测试-权限缺失
    JAVA计算机毕业设计智慧门诊综合管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
    React Native 源码分析(四)—— TurboModules JSI通信机制
    写了个基于 MacOS + iTerm2 自动打开窗口执行命令的工具
    Qt OpenGL 3D模型
    小程序学习
    Spring MVC拦截器实现用户登录权限验证案例
  • 原文地址:https://blog.csdn.net/weixin_46094737/article/details/126294900