社区
C语言
帖子详情
请问我有time_t类型的变量,我现在存入文件中去,再用fgets读出
liuxialong
2009-12-22 04:16:29
有time_t类型的变量,我现在存入文件中去,再用fgets读出后存在char *buffer中,
请问我现在怎么把buffer还原成time_t类型。
或者
大家有没有其他思路,在文件中如何保存time_t,因为我要一行一行的读文件,
所以读出的时候一定是字符串类型的。
如何还原成time_t类型。
还有int类型,都上的疑问。
...全文
238
13
打赏
收藏
请问我有time_t类型的变量,我现在存入文件中去,再用fgets读出
有time_t类型的变量,我现在存入文件中去,再用fgets读出后存在char *buffer中, 请问我现在怎么把buffer还原成time_t类型。 或者 大家有没有其他思路,在文件中如何保存time_t,因为我要一行一行的读文件, 所以读出的时候一定是字符串类型的。 如何还原成time_t类型。 还有int类型,都上的疑问。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuxialong
2009-12-23
打赏
举报
回复
你的建议很好。不过我这只用考虑本地存 读的问题。
谢谢你!
[Quote=引用 12 楼 dergen 的回复:]
引用 8 楼 liuxialong 的回复:
我会了,可以转换指针
char buffer[4];
time_t *tp=(time_t *)buffer;
就可以了
time_t 与系统实现有关,所以这样保存到文件,在另外的系统再读出来,有可能得不到你想要的结果。还是保存为具体时间比较稳妥吧,我想。
[/Quote]
白云在上
2009-12-23
打赏
举报
回复
[Quote=引用 8 楼 liuxialong 的回复:]
我会了,可以转换指针
char buffer[4];
time_t *tp=(time_t *)buffer;
就可以了
[/Quote]
time_t 与系统实现有关,所以这样保存到文件,在另外的系统再读出来,有可能得不到你想要的结果。还是保存为具体时间比较稳妥吧,我想。
challenge99
2009-12-22
打赏
举报
回复
可以把数据以16进制 的字符方式写入, 读出的时候再转换成数据
比如 0100 0001 -> 0x41 - > 41
白头老汉
2009-12-22
打赏
举报
回复
如果你用文本方式写进去,再读出来,估计就完蛋了。
用二进制写,二进制读。结构的大小用sizeof
十八道胡同
2009-12-22
打赏
举报
回复
应该可以强制类型转换
如果不能 可以读进内存之后再构造time_t
liuxialong
2009-12-22
打赏
举报
回复
我会了,可以转换指针
char buffer[4];
time_t *tp=(time_t *)buffer;
就可以了
liuxialong
2009-12-22
打赏
举报
回复
可是还是没有解决问题啊,谁有好的想法啊
[Quote=引用 6 楼 wangxipu 的回复:]
time_t在vs2003以及之前的版本中为32位
2005之后就是64位了
[/Quote]
wangxipu
2009-12-22
打赏
举报
回复
time_t在vs2003以及之前的版本中为32位
2005之后就是64位了
liuxialong
2009-12-22
打赏
举报
回复
顶一下,大家帮帮忙看下吧
liuxialong
2009-12-22
打赏
举报
回复
[Quote=引用 2 楼 jzd8000 的回复:]
用sizeof计算一下time_t的长度,然后把这么多长度的数据强制转换为time_t类型的。
[/Quote]
能详细点么,我现在是用char *buffer存着time_t,如何强制转换32位的数据到time_t
liuxialong
2009-12-22
打赏
举报
回复
[Quote=引用 1 楼 hbvanguard 的回复:]
不要用fgets读,用fread读字节然后转化成time_t或者int都方便
[/Quote]
但是我必须用fgets,因为我文件中存放的记录是用‘\n’分割的。
我不知道每条记录的大小,怎么用fread读啊
jzd8000
2009-12-22
打赏
举报
回复
用sizeof计算一下time_t的长度,然后把这么多长度的数据强制转换为time_t类型的。
hbvanguard
2009-12-22
打赏
举报
回复
不要用fgets读,用fread读字节然后转化成time_t或者int都方便
【linux应用软件编程】
文件
操作学习1(
文件
相关基础知识及【标准IO】)
本文系统讲解Linux应用编程中标准IO
文件
操作的核心知识,涵盖fopen/fclose
文件
打开关闭、fgetc/fputc字符级读写、
fgets
/fputs行级读写、fwrite/fread结构体级读写,以及fseek/ftell/rewind流定位函数和
time
/c
time
/local
time
时间处理函数。重点区分ASCII与二进制
文件
操作差异,并通过BMP图片读取、
文件
拷贝、空洞
文件
创建等实例强化实践理解。
从零开始的敲代码生活--Linux应用软件(
文件
操作基础1)
本文系统讲解Linux环境下C语言标准IO库的
文件
操作函数,涵盖fopen/fclose、fgetc/fputc、
fgets
/fputs、fread/fwrite等核心接口的用法、参数含义与返回值;深入解析
文件
流概念、
文件
定位(fseek/ftell/rewind)及典型应用如
文件
拷贝;同时简要介绍
time
/c
time
/local
time
等时间函数在日志与
文件
命名中的辅助作用。
Linux应用软件编程(
文件
操作)
本文系统讲解Linux下应用层
文件
操作的核心技术,重点介绍标准IO库函数(fopen/fread/fwrite/fclose/fseek等)的用法、参数含义、返回值及典型应用场景;对比标准IO与
文件
IO(系统调用)的区别;涵盖
文件
类型
识别、打开模式语义、流定位、缓冲区安全读写(如
fgets
vs gets)、标准输入输出流(stdin/stdout/stderr)等关键知识点,适用于C语言Linux应用开发与系统编程。
Linux C语言
文件
操作:从标准IO到
文件
IO的全面解析
本文系统讲解Linux下C语言
文件
操作的两大体系:标准IO(fopen/fread/fwrite等库函数)和
文件
IO(open/read/write等系统调用)。涵盖
文件
类型
、打开/读写/定位/关闭操作、缓冲机制差异、适用场景对比(如文本处理选标准IO,设备操作或精确落盘选
文件
IO),以及目录IO和实战示例(如cp命令实现)。重点突出二者在缓冲区、可移植性、性能及适用对象上的本质区别。
C语言
文件
拷贝四种实现方式详解:从逐字符到系统调用
本文系统剖析C语言中实现
文件
拷贝的四种核心方式:逐字符(fgetc/fputc)、逐行(
fgets
/fputs)、块拷贝(fread/fwrite)和系统调用(read/write)。重点对比其抽象层次、性能特征、适用场景及错误处理机制,指出块拷贝为跨平台高性能推荐方案,并深入分析缓冲区设计、二进制模式必要性、
文件
描述符与
文件
指针差异、可移植性限制等关键技术点。
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章