ULONGLONG类型的使用,适合存储文件的大小(4G以上的)
2011-02-18 16:30
706 查看
mfc里面的CFile文件获取到文件的大小,使用的是:file.GetLength(),返回的类型为ULONGLONG,这个对于大于4G的文件来说,才是足够的.
我原以为用一个long型就可以保存下这个大小,结果错的离谱.
long型在win32平台下,就是32位的,跟int其实就是一回事.唉,害苦我了,不知道为什么一直以为long是64的.
所以vc里面写64位的int都是这样定义的 _int64
但是一般使用的时候,类型清楚就直接使用ULONGLONG这样的自定义就很好用了.
要printf出这样的类型,是不能用%d来表示的,论坛上竟然还有人误解大家.
要这样写:
ULONGLONG filetotalsize=5912341234;
printf("size=%I64u",filetotalsize);
否则出来的结果只会是%d代表的最大值.
将字符串转换为ULONGLONG类型,是使用
char strbuff[32]="4812341234";
ULONGLONG tt=_atoi64(strbuff);
这样的代码.
有的地方说用atoll,但是没有这个函数啊,说要什么gg标准,我是不清楚了.
我原以为用一个long型就可以保存下这个大小,结果错的离谱.
long型在win32平台下,就是32位的,跟int其实就是一回事.唉,害苦我了,不知道为什么一直以为long是64的.
所以vc里面写64位的int都是这样定义的 _int64
但是一般使用的时候,类型清楚就直接使用ULONGLONG这样的自定义就很好用了.
要printf出这样的类型,是不能用%d来表示的,论坛上竟然还有人误解大家.
要这样写:
ULONGLONG filetotalsize=5912341234;
printf("size=%I64u",filetotalsize);
否则出来的结果只会是%d代表的最大值.
将字符串转换为ULONGLONG类型,是使用
char strbuff[32]="4812341234";
ULONGLONG tt=_atoi64(strbuff);
这样的代码.
有的地方说用atoll,但是没有这个函数啊,说要什么gg标准,我是不清楚了.
相关文章推荐
- Linux基本数据类型大小——int,char,long int,long long int(/usr/include/limit.h文件对Linux下数据类型的限制及存储字节大小的说明)
- 关于struts2使用xml拦截器(interceptor)限制文件上传(fileUpload)大小和类型的问题,道友看一看
- 使用jquery过滤上传文件的类型和限制文件的大小
- Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
- PHP使用适合阅读的格式显示文件大小的方法
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- Linux 使用lseek生成4G以上的空洞文件
- [Struts2]在使用Struts2的文件上传时,文件大小和类型过滤后,页面无法跳转至input页面
- Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
- PHP使用适合阅读的格式显示文件大小的方法
- 取得4G以上的文件大小
- 使用jquery过滤上传文件的类型和限制文件的大小
- asp.net上传文件使用fileupload控件,判断文件类型和大小,取得文件路径时报错【System.IO.FileNotFoundException:未能找到文件】的解决办法
- Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)
- 文件上传时使用拦截器限制文件大小类型无效的问题
- 使用jquery过滤上传文件的类型和限制文件的大小
- 使用windows的fsutil命令创建指定大小及类型的测试文件
- 使用U盘存储大于4G的文件-exFAT格式化
- 使用hsql建立本地文件类型存储的数据库