当前位置:  技术问答>linux和unix

printf 打印long long 变量的问题

    来源: 互联网  发布时间:2016-11-27

    本文导语:  本帖最后由 boborookie 于 2009-12-30 11:59:54 编辑 long count = 9763251; long size = 16384; long avail = 9763250; long long totalsize = (long long)count * (long long)size; long long availsize = (long long)avail * (long long)size; 方法A:用以下printf打印,...

本帖最后由 boborookie 于 2009-12-30 11:59:54 编辑

long count = 9763251;
long size = 16384;
long avail = 9763250;

long long totalsize = (long long)count * (long long)size;
long long availsize = (long long)avail * (long long)size;

方法A:用以下printf打印,打印结果为:
    
printf("total_size: %ld(GB)n, free size: %ld(GB)n ",
                             totalsize / (1024*1024*1024),
                             availsize / (1024*1024*1024));

打印结果为:
total_size: 148(GB), 
free size: 0(GB)//错误的结果!! 

方法B:(把2句分开放)

    printf("total_size: %ld(GB)n",
                             totalsize  / (1024*1024*1024));

    printf("free size: %ld(GB)n ",
                             availsize  / (1024*1024*1024));

打印结果为:
total_size: 148(GB), 
free size: 148(GB) //正确的结果

以前也碰到过同样的问题
请教 printf 为什么会有这种表现?
谢谢!

|
man 3 printf,please!

ll

(ell-ell). A following integer conversion corresponds to a long long int or unsigned long long int argument, or a following n conversion corresponds to a pointer to a long long int argument. 

printf ("%c,%cn", 0x6162, 'x');//你认为会输出什么呢?

|
printf("%lldn",());
对于LONG LONG 型 ,要用%LLD。

|
    printf("total_size: %lld(GB)n",
                             totalsize  / (1024*1024*1024)LL);

    printf("free size: %lld(GB)n ",
                             availsize  / (1024*1024*1024)LL);

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎样用printf()正常打印出utf8的中文?
  • [新手报道]:Linux下怎么用printf无法将信息打印出来?
  • 弱弱得问一下:linux下gcc编程printf打印不出汉字,怎么解决?
  • Linux字符设备驱动疑难问题--printf打印信息发到字符设备write函数中
  • 为什么printf函数没有打印出信息?
  • java命名空间java.io类console的类成员方法: printf定义及介绍
  • 为什么会我调试程序的时候出现“printf.c: 没有那个文件或目录. in printf.c“
  • java命名空间java.io类printstream的类成员方法: printf定义及介绍
  • UDP包何printf?
  • java命名空间java.io类printwriter的类成员方法: printf定义及介绍
  • Linux 中的printf、open、close
  • Python中类似printf的字符串格式化详解
  • [求解]关于printf 与 ++ --的疑惑
  • printf的静态库在哪??
  • Eclipse对printf()不能输出到控制台的快速解决方法
  • printf显示的问题.
  • printf的奇怪现象
  • linux printf文字编码设定?
  • 如何使用ar命令检查在标准的C库中收藏了多少与printf相关的函数
  • 如何在printf()中指定字段的宽度后,左端的用数字0而不用空格补全
  • 送分题,关于printf输出格式的问题。
  • 问个printf的问题
  • UART_printf在哪里?
  • printf到指定终端
  • ld 报undefined reference to `printf'求解决方法
  • printf的问题 为什么没有输出


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3