C中的%d,%o,%f,%e,%x的区别

C中的格式字符有d,o,x,u,c,s,f,e,g等,之前有看到其中某些可以大写(待确定)。 
如:

%d整型输出,%ld长整型输出,

%o以八进制数形式输出整数,

%x以十六进制数形式输出整数,

%u以十进制数输出unsigned型数据(无符号数)。

%c用来输出一个字符,

%s用来输出一个字符串,

%f用来输出实数,以小数形式输出,

%e以指数形式输出实数,

%g根据大小自动选f格式或e格式,且不输出无意义的零。

c语言中以16进制输出时%0x和%x有什么区别?


标准C语言库函数fprintf/printf格式字符串的转换说明形式是这样的:

%[标志][最小输出宽度][.精度][长度修正符]类型
方括号括起来为option项目。

当[标志]是0或多个标志字符,可以是任意顺序,常用有以下几个:
 -   左对齐,缺省是右对齐。
 + 带符号的值前面总是有个符号,也就是正数前面有+号,负数前面有-号。
 0  输出值的宽度小于最小宽度的话,用0填充,缺省是用空格填充。

0也是是一个标志字符,意思就是用0填充

特殊情况:C语言%p的含义:

格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。
示例:
int i = 1;
printf("%p",&i);
相当于
int i = 1;
printf("0x%x",&i);
对于32位的指针,输出一般会是类似0xf0001234之类的结果。
%p存在的理由除了附加前缀输出的便利性以外,如LS所说,指针的大小是不确定的,由实现决定。根据地址空间的大小,一般有16位、32位、64位的指针。尽管目前32位平台上的指针一般全是32位的,但旧的一些平台上可能有多种长度的指针(例如非标准的near、far、huge修饰的pointer)混用,无法用%x、%lx、%hx、%llx(对应int、long、short、long long)中的任意一种保证能输出所有类型的指针。

scanf(控制字符,地址列表) ;

格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str);

注意控制字符之间的格开字符,一般数据之间的分隔为:空格,tab,和回车;如获取的为字符时,空格和tab均可当为字符给自动录入。

时间: 2024-11-14 02:59:30

C中的%d,%o,%f,%e,%x的区别的相关文章

Linux中的命令 make -f 是什么意思

出处:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246091d21a8e07b770703a79b273b46e5540faab66d2369543de1cc8edb1183fa8f2d2d832735761892044f934fa0951d79866a875a98b86fe3ad863084afa2c4af5344bb55127bf0afd803570

在本机代码中通过 COM 使用 F#

在本机代码中通过COM 使用 F# 虽然大多数情况下,我们可能希望从 F# 代码调用本机代码,但是,在某些情况下,也可能想从本机代码中调用 F# 库函数.例如,假设我们有一个大型的程序是用 C++ 写的,有可能希望用户界面保持用 C++,而把一些逻辑,比如执行复杂数学计算的部分迁移到 F#,以方便维护.在这种情况下,我们就要从本机代码中调用 F# 了.简单的方法是借用.NET 提供的工具,为我们的 F# 程序集创建 COM 包装:然后,使用COM 运行时从 C++ 中调用 F# 函数. 要通过

python中urllib, urllib2,urllib3, httplib,httplib2, request的区别

permike原文python中urllib, urllib2,urllib3, httplib,httplib2, request的区别 若只使用python3.X, 下面可以不看了, 记住有个urllib的库就行了 python2.X 有这些库名可用: urllib, urllib2, urllib3, httplib, httplib2, requests python3.X 有这些库名可用: urllib, urllib3, httplib2, requests 两者都有的urllib3

捷硬盘全面自动校准和F级校准的区别分析

在对希捷硬盘进行修复时,如果是坏道严重需要通过调用厂家校准程序来进行全面修复,这里来说说效率源希捷硬盘全面自动校准和F级校准的区别. 首先来解释下什么是全面自动校准: 希捷硬盘出厂时都会对新硬盘进行全面测试,测试的方法是通过运行存储在硬盘自身固件区里的一段程序来实现的,以下叫它"校准程序",测试全面通过后方可出厂以及销售. 希捷酷鱼系列固件模块组成: 0 ALT G表模块 1 ATA 硬盘正常工作必须模块 2 CERT 校准代码 3 CERT TAB 校准流程 4 INFO 硬盘参数

C#中数组、ArrayList和List三者的区别

在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢. 数组 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. [csharp] view plaincopy <span style="font-family:SimSun;font-size:18px;">//数组 string[] s=new string[2]; //赋值 s[0]="a"; s[1]=&quo

phpcms v9中 action=&quot;position&quot; 和action=&quot;lists&quot;有什么区别, 以及action 的属性和值

action值的含义: lists 内容数据(文章?)列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列表 position 内容推荐位列表 phpcms v9中 action="position" 和action="lists"有什么区别, 以及action 的属性和值,布布扣,bubuko.com

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可

java中,return和return null有什么区别吗?

java中,return和return null有什么区别吗? 最大的区别:return;方法的返回值必须是void!return null;方法的返回值必须不是 原始数据类型(封装类除过)和void! return 就是跳出方法...return null也是跳出方法并返回null.. 也就是说return null必须用在返回值不是void的方法里面..return可以用在任何方法里面 不要认为null就是没有值..null就是值..真正的没有值是..比如你String s;这个时候s是没有

Android中adb push和adb install的使用区别

Android中adb push和adb install的使用区别  转载 本篇文章由史迎春(@三俗小女子)投稿.转载请注明原文地址. 在Android实际开发中,经常会使用adb命令,安装应用程序可以使用adb push 或者adb install.下面就来讲讲这两种安装方式的区别. adb push 能够指定安装目录.比如执行”adb push xxx.apk system/app” 后,xxx.apk被安装到了system/app目录下,此目录下的软件为上文中提到的system appli