当前位置:
文档之家› C语言scanf和printf(2009)
C语言scanf和printf(2009)
10、在标准C中不使用%u格式符, unsigned型数据以 10、在标准C中不使用%u格式符,对unsigned型数据以 %u格式符 %d,%x,%o格式输入 格式输入。 %d,%x,%o格式输入。
格式说明: 格式说明:
格式 字符 d o x c s
f e
说明 以十 进制形式输 入整数 以八 进制形式输 入整数 以十 六进制形式 输入整数 以输 入一个字符 输入 字符串,将字符串送到一 个字符数组 中,在输入时 以非空白字 符开始,以第一个空白字符结 束.字符串 \0’作为结束标 以 ’\0 作为结束标 志 \0 以小 数形式或指 数输入实数 以 f 格式相同
7、在使用%c格式符时,输入的数据之间不需要分隔符标志; 在使用%c格式符时,输入的数据之间不需要分隔符标志; %c格式符时 空格、回车符都将作为有效字符读入。 空格、回车符都将作为有效字符读入。
scanf(“%c%c%c ,&a,&b,&c); scanf( %c%c%c”,&a,&b,&c); %c%c%c 输入b 输入b□o□y 赋值给a, 赋值给b,o赋值给c a,□ b,o赋值给 b赋值给a,□赋值给b,o赋值给c
scanf()函数 scanf()函数
1、功能: 功能: 将从终端(键盘)输入的数据传送给对应的变量。 将从终端(键盘)输入的数据传送给对应的变量。 2、格式:scanf(格式控制,输入项地址表) 格式:scanf(格式控制,输入项地址表) 格式控制
说明: 说明: 格式控制的含义同printf函数, printf函数 格式控制字符” 格式控制的含义同printf函数,“%格式控制字符” 输入项地址表由若干个地址组成, 输入项地址表由若干个地址组成,代表每一个变量在内存的地 表示为: 变量(或数组与字符串的首地址) 址。表示为:&变量(或数组与字符串的首地址) 每次调用scanf( )函数后 函数将得到一个整型函数值, 函数后, 每次调用scanf( )函数后,函数将得到一个整型函数值,此值 等于正常输入数据的个数
9、格式说明%*表示跳过对应的输入数据项不予读入。 格式说明%*表示跳过对应的输入数据项不予读入。 %*表示跳过对应的输入数据项不予读入
:scanf(“%2d %2d”,&a,&b); 如:scanf( %2d %*2d %2d ,&a,&b); 若输入12 若输入12 345 67 12赋给a,67赋给b,而345没有赋给任何数据 赋给a,67赋给b, 没有赋给任何数据. 则12赋给a,67赋给b,而345没有赋给任何数据.
+
.nl格式控制字符 格式控制字符” 0 m .nl格式控制字符”
举例: 2、举例:
格式控制字符
格式字符 d o x u c s f e g 说明 以带符号的十进制形式输出整数 以无符号的八进制形式输出整数 以无符号的十六进制形式输出整数 以无符号的十进制形式输出整数 以字符形式输出一个字符 输出字符串 以小数形式输出单, 双精度数, 以小数形式输出单 , 双精度数, 隐含输出六位小数 以标准指数形式输出单, 双精度数, 以标准指数形式输出单 , 双精度数 , 数字部分六位小数 选用%f 格式中输出宽度较短的一种格式输出, 选用 %f 或 %e 格式中输出宽度较短的一种格式输出 , 不输 出无意义的 0
a=(4) int a=-1;
printf(“%x,%o,%d ,a,a,a); 输出结果为:ffff,177777,printf( %x,%o,%d”,a,a,a); 输出结果为:ffff,177777,-1 %x,%o,%d 同样,也可以用%lx输出长整型数据或指出输出宽度, %lx输出长整型数据或指出输出宽度 同样,也可以用%lx输出长整型数据或指出输出宽度, printf(“%lx,%12x %lx,%12x”,a,a) 如:printf( %lx,%12x ,a,a)
使用要点: 3、使用要点:
scanf()函数的使用要点 scanf()函数的使用要点
1、格式符的个数必须与输入项的个数相等,数据类型必须从 格式符的个数必须与输入项的个数相等, 左至右一一对应。 左至右一一对应。 )函数中常用的格式符有 函数中常用的格式符有: 2、scanf( )函数中常用的格式符有: 3、用户可以指定输入数据的域宽,系统将自动按此域宽截取 用户可以指定输入数据的域宽, 所读入的数据, 所读入的数据,如: scanf(“%3d%3d ,&a,&b); scanf( %3d%3d”,&a,&b); %3d%3d 输入123456 输入123456 系统自动将123赋值给a,将456赋值给b. 系统自动将123赋值给a,将456赋值给b. 123赋值给a, 赋值给 4、输入实型数据时,用户不能规定小数点后的位数。 输入实型数据时,用户不能规定小数点后的位数。 scanf(“%7.2f ,&a);是错误的. scanf( %7.2f”,&a);是错误的. %7.2f ,&a);是错误的 5、输入实型数据时,可以不带小数点,即按整型数方式输入。 输入实型数据时,可以不带小数点,即按整型数方式输入。
(2)long a=135790;
printf(“%ld ,a); printf( %ld”,a); %ld 长整型数据应采用%ld格式输出,若采用%d格式则出错。 %ld格式输出 %d格式则出错 长整型数据应采用%ld格式输出,若采用%d格式则出错。
a=(3)int a=-1;
printf(“%d,%o ,a,a); 输出为:-1,177777 printf( %d,%o”,a,a); 输出为: %d,%o 对于八进制输出不会输出带符号的数据,长整型数据用%lo %lo格式输 对于八进制输出不会输出带符号的数据,长整型数据用%lo格式输 也可以指定宽度。 printf(“%lo,%8o %lo,%8o”,a,a); 出,也可以指定宽度。如:printf( %lo,%8o ,a,a);
printf( )函数的格式控制 )函数的格式控制
1、格式控制字符是用双引号括起来的字符串,用来确定确定 格式控制字符是用双引号括起来的字符串, 输出项的格式和需要原样输出的字符串。其组成形式为: 输出项的格式和需要原样输出的字符串。其组成形式为:
“普通字符串 % 其中: 其中: 输出数据项的顺序一般按从左至右的顺序输出。 输出数据项的顺序一般按从左至右的顺序输出。格式控制中的普通 字符串,照原样输出; 字符串,照原样输出; 如:printf( a=%d,b=%d ,a,b); printf(“a=%d b=%d”,a,b); a=%d, 语言规定的标记符; %:为C语言规定的标记符; + :指定输出数据的对齐方式:+为右对齐(可缺省);-为左对齐; 指定输出数据的对齐方式: 为右对齐(可缺省); 为左对齐; );指定输出的数据中不使用的位置是否填数字“ 0:指定输出的数据中不使用的位置是否填数字“0” 关于m .n与 的说明: 关于m .n与l的说明: 格式控制字符用于指定数据的输出形式 可以包含转义字符, 用于指定数据的输出形式, 格式控制字符用于指定数据的输出形式,可以包含转义字符, 用两个连续的“%%”表示输出字符 %”。 表示输出字符“ 用两个连续的“%%”表示输出字符“%”。
《程序设计基础》CAUCJSJ
<补充内容 补充内容> 补充内容 C程序中的输 程序中的输 入与输出
C语言中数据的输入与输出函数
C语言没有提供输入输出语句,而是由输入输出 语言没有提供输入输出语句, 标准库函数来实现的。 标准库函数来实现的。 输出函数printf( ) 输出函数printf( 输入函数scanf( 输入函数scanf( ) 应用举例
%4d,%4d”,a,b); (1)printf(“%4d,%4d ,a,b); printf( %4d,%4d
则输出为: 若a=123,b=12345 则输出为: □123,12345 如果数据位数小于m 则左端补空格,若大于m 则按实际输出。 如果数据位数小于m,则左端补空格,若大于m,则按实际输出。
scanf()函数的使用要点( scanf()函数的使用要点(3) 函数的使用要点
8、如果格式控制字符串中除了格式说明之外,还包含其它字 如果格式控制字符串中除了格式说明之外, 则输入数据时, 符,则输入数据时,在与之对应的位置上也必须输入与 这些字符相同的字符。 这些字符相同的字符。
scanf(“Enter %d”,&x); 如:scanf( Enter a number: %d ,&x); scanf(“%d%d %d%d”&a,&b); scanf( %d%d &a,&b); 输入格式 122 23 scanf(“%d,%d %d,%d”,&a,&b); scanf( %d,%d ,&a,&b); 输入格式 122,23 scanf(“a=%d,b=%d a=%d,b=%d”,&a,&b); scanf( a=%d,b=%d ,&a,&b); 输入格式 a=123,b=23
附加格式说明: 附加格式说明:
字符 l h 域 宽 (为 一 正 整 数 ) * 说明 用 于 输 入 长 整 型 数 据 以 及 double 型 数 据 用于输入短整型数据 指定输入数据所占宽度 表示本输入项在读入后不赋给相应的变量
exp1:请阅读并分析以下程序的运行情况与结果 请阅读并分析以下程序的运行情况与结果。 例exp1:请阅读并分析以下程序的运行情况与结果。 #include <stdio.h> main() { unsigned int a=65535; b=int b=-2; printf(“a=%d,%o,%x,%u a=%d,%o,%x,%u\ ,a,a,a,a); printf( a=%d,%o,%x,%u\n”,a,a,a,a); printf(“b=%d,%x,%o,%u b=%d,%x,%o,%u\ ,b,b,b,b); printf( b=%d,%x,%o,%u\n”,b,b,b,b); } 输出为 a=a=-1,177777,ffff,65535 b=b=-2,fffe,177776,65534