`
yidongkaifa
  • 浏览: 4039033 次
文章分类
社区版块
存档分类
最新评论

scanf和printf函数处理不同进制

 
阅读更多

scanf函数,与printf函数一样,都被定义在stdio.h里,因此在使用scanf函数时要加上#includestdio.h。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。

printf函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf(“<格式化字符串>”, <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以”%”开始, 后跟一个或几个规定字符,
用来确定输出内容格式。
参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用”,”分开, 且顺序一一对应, 否则将会出现意想 不到的错误。

1 #include “stdafx.h”

2 int main(void)
3 {
4 /* 定义多个变量以存储多个不同整形数据*/
5 int int_dec, int_hex, int_oct; /*定义三个int变量*/
6 int constant = 74; /*定义并初始化变量constant*/

7 /*用三种进制形式给整形变量赋值*/
8 scanf(“%d”, &int_dec); /*以十进制“d”的形式为int_dec赋值*/
9 scanf(“%x”, &int_hex); /*以十六进制“x”的形式为int_hex赋值*/ 10 scanf(“%o”, &int_oct); /*以八进制“o”的形式为int_oct赋值*/

11 /*用十进制的形式打印三个变量*/
12 printf(“int_dec(十进制) = %d/n”, int_dec); /* 打印十进制的形式*/
13 printf(“int_hex(十六进制)= %d/n”, int_hex); /* 打印十六进制的形式*/
14 printf(“int_oct(八进制)= %d/n”, int_oct); /* 打印八进制的形式*/

15 /*把十进制74用三种进制分别打印*/
16 printf(“(Dec)74 = %d/n”, constant); /* 输出74的十进制形式*/
17 printf(“(Hex)74 = %X/n”, constant); /* 输出74的十六进制大写形式*/
18 printf(“(Hex)74 = %x/n”, constant); /* 输出74的十六进制小写形式*/
19 printf(“(Oct)74 = %o/n”, constant); /* 输出74的八进制形式*/
20 return 0;
21 }

运行程序,安要求输入字符。输入如下的三个整数,中间以空格隔开:22 22 22

得到的运行结果如下。

image

代码分析:

从输出的结果可以看到,同样都是22,由于printf中对应的格式不一样,值也不一样

%d只接受十进制数;%x只接受十六进制数(如果没有输入前缀0x就输入22也视着为0×22)
%o只接受八进制数(如果没有前缀0输入22,也视为022;如果输入的是19就只读入1,因为9不是八进制数)

如果将8-10行的scanf函数输入格式符都是用%i,那么便可以接受所有进制的数,如下:

scanf(“%i”, &int_dec); /*为int_dec赋值*/
scanf(“%i”, &int_hex); /*为int_hex赋值*/
scanf(“%i”, &int_oct); /*为int_hex赋值*/

如果输入22 22 22运行结果如下:

如果输入22 22 22运行结果如下:

image

这时,如果要输入十六进制数和八进制数,必须显式地以进制符作为前缀。如:22 0×22 022

转自http://www.hiadmin.org/code/scanf/

分享到:
评论

相关推荐

    c语言整型的scanf和printf的格式限定符.jpg

    整型(int、long int 、short等)下十进制、八进制、十六进制的输入输出控制符

    memf:用于封送二进制数据的便携式 scanfprintf 类函数

    该接口类似于scanf和printf的接口:提供一个您想要将数据编组到的结构,并使用指向该结构的指针、数据源/排水管和描述结构字段的字符串调用该系列中的函数其余的会自动发生。 不需要冗长的编组代码。 示例用法 在...

    STM32串口实验+自定义协议接收16进制数据+发送1个(2个)字符+发送字符串函数.zip

    STM32串口使用自定义协议接收一串十六进制数据并进行储存 提取十六进制数据的两个字节转化为十进制数据 发送一个字节函数 发送两个字节函数 发送字符串函数 重定向printf函数 重定向scanf函数

    C语言程序设计标准教程

    scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列); 其中,...

    C语言程序设计:运算符和表达式.pptx

    printf函数(格式输出函数) printf函数的一般格式;/*从最简单的学起 */ #include void main() { printf(“Hello World !” ); };格式字符 d格式符:输出十进制整数 %d格式:按数据实际长度输出。;%md格式:m指定...

    明解C语言(第3版)入门篇.[日]柴田望洋(带详细书签).pdf 【半高清】

    13-3 printf函数与scanf函数 389 printf函数:带格式输出 389 scanf函数:带格式的输入 393 总结 397 附录 C语言简介 399 C语言的历史 400 K&R——C语言的圣经 400 C语言标准规范 400 结语 402 参考文献 405

    -C++参考大全(第四版) (2010 年度畅销榜

    21.4 无格式和二进制I/O 21.5 其他get()函数 21.6 getline()函数 21.7 检测EOF 21.8 ignore()函数 21.9 peek()和putback()函数 21.10 flush()函数 21.11 随机访问 21.12 I/O状态 21.13 定制的I/O和文件 第22章 运行...

    c程序设计习题参考(谭浩强三版)习题参考解答

    3.3请将下面各数用八进制和十六进制数表示: 2 3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。 2 3.5字符常量和字符串常量有什么区别? 3 3.6写出以下程序运行的结果: 3 3.7...

    C语言讲义.doc

    1.7 PRINTF函数 15 1.8 RETURN语句 15 1.9 SYSTEM系统调用 15 1.9.1 System返回值在windows和unix下的不同, 15 1.9.2 POSIX 15 1.10 C语言编译过程,GCC参数简介 16 1.10.1 C语言编译过程 16 1.10.2 -E预编译 16 ...

    编写C语言程序进行进制转换的问题实例

     输入的第一行包括两个整数:M和N(2&lt;=M,N&lt;=36)。   下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。   输出:   输出X的N进制表示的数。   样例输入:   16 10...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    3.4.4 用scanf和printf函数进行输入和输出 3.5 编写顺序结构的程序 3.6 关系运算和逻辑运算 3.6.1 关系运算和关系表达式 3.6.2 逻辑常量和逻辑变量 3.6.3 逻辑运算和逻辑表达式 3.7 选择结构和if语句 3.7.1 if语句的...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    3.4.4 用scanf和printf函数进行输入和输出 3.5 编写顺序结构的程序 3.6 关系运算和逻辑运算 3.6.1 关系运算和关系表达式 3.6.2 逻辑常量和逻辑变量 3.6.3 逻辑运算和逻辑表达式 3.7 选择结构和if语句 3.7.1 if语句的...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    1.5 使用printf()和scanf() 1.6 控制流 1.7 函数 1.8 数组、字符串和指针 1.8.1 数组 1.8.2 字符串 1.8.3 指针 1.9 文件 1.10 与操作系统有关的内容 1.10.1 编写和运行c程序 1.10.2 中断程序 1.10.3 输入文件尾...

    C语言程序设计(谭浩强)第三版

     3.4.3用printf函数输出数据  3.4.4用scanf函数输入数据  3.4.5字符数据的输入输出  习题 第4章:选择结构程序设计 4.1选择结构和条件判断  4.2用if语句实现选择结构  4.2.1用if语句处理选择结构举例  4.2.2...

    计算机二级c语言模拟题

    例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或...

    C语言通用范例开发金典.part2.rar

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 ...

    C语言通用范例开发金典.part1.rar

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 ...

    C 开发金典

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 ...

Global site tag (gtag.js) - Google Analytics