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、使用重定向运算符不能读取多个文件的输入,也不能把输出定向至多个文件;

源代码:

#include <stdio.h>

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;
}

运行结果:

②、时间time()函数

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

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

#include <stdio.h>
#include <time.h>
#include <utime.h>
#include <sys/times.h>

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

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

打印时间戳:

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

例如一下示例:

#include <stdio.h>
#include <time.h>
#include <utime.h>

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 <windows.h>
	time_t t2 = time(NULL);
	unsigned int ret= t2 - t1;
	printf("%d",ret);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不掉头发的程序猿_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值