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

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函数用法研究.pdf

    本文主要探讨了C语言中scanf函数的用法,着重指出scanf函数在使用过程中的易错点,并通过例子展示了scanf函数在不同情况下的使用注意事项。 一、 scanf函数的基本用法 scanf函数的基本格式是:scanf (“输入控制符...

    c语言编程题库

    + 知识点:scanf函数、printf函数、%X格式符 * 题目2:输入实型数据a、b,然后输出a、b的值。 + 知识点:scanf函数、printf函数、%f格式符 * 题目3:输入一个小写英文字母,首先输出它及其ASCII码,然后输出其对应...

    嵌入式Linux下C程序设计--02输入输出语句.ppt

    格式输入与输出语句包括 printf 函数和 scanf 函数。printf 函数的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。printf 函数的格式:printf( 格式控制,输出表列 ) ;例如,printf("%d, %c\n...

    C语言中整型无符号二进制数的表示问题.pdf

    二进制数是一种基于2的进制系统,使用0和1两个数字来表示所有数据,而整型无符号二进制数是指没有符号的整数类型的二进制数。然而,在C语言中,直接表示整型无符号二进制数并不是一个简单的任务。这篇文章将讨论...

    C语言程序设计标准教程

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

    深析C语言浮点型数据的输入输出.pdf

    根据IEEE 754标准,浮点型数据的二进制编码不同于整型数和字符型数。在C语言中,一般只涉及float类型和double类型数。 二、浮点型数据的输出形式 浮点型数据的输出形式可以分为十进制、 二进制和十六进制三种。十...

    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语言中常用头文件.doc

    stdarg.h 头文件提供了可变参数处理函数,用于实现诸如 printf,scanf 等参数数量可变函数。该头文件中的函数列表如下: * va_start:可变参数开始宏 * va_end:可变参数结束宏 * va_arg:可变参数访问宏 stdio.h ...

    -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语言考试试题

    * C语言提供了多种文件输入/输出函数,包括scanf和printf等。 * 文件输入/输出函数可以用于读取和写入文本文件和二进制文件。 九、预处理器 * 预处理器是C语言编译的第一阶段,用于对源代码进行预处理。 * 预...

Global site tag (gtag.js) - Google Analytics