第三章 C语言数据的输入与输出
C语言数据的输入与输出
C语言数据的输入与输出C语言数据的输入与输出一.Printf函数函数原型在头文件stido.h中(使用时可以不包括)printf函数的返回值等于成功输入得数据的个数1.printf函数得一般调用形式printf(格式控制字符串,输出项列表)格式控制字符串包括:(1)格式指示符格式:%[标志][宽度][.精度][[h|l]<类型>](2)转义字符如:'\n','\0'(3)普通字符如:printf("max=%d,min=%d\n",a,b);“max=”和“,min=”是普通字符;“%d”是格式指示符;“\n”是转义字符;a和b是输出类表中的输出项(可以是常量、变量、或表达式)。
2.print函数中常用得格式控制说明(1)数据类型控制字符格式字符说明%c输出一个字符%d或%i以十进制形式输出一个带符号得整数(正数不输出符号)%u以十进制形式输出无符号整数。
若有符号则自动将符号位转化为数值位,%o 和%x也具有类似得功能%o以八进制形式输出无符号整型数(不带前导0)%x或%X以十六进制形式输出无符号整型数(不带前导0x或0X)。
对于十六进制数中的字符abcdef,用%x时输出得是小写字母,%X时输出的是大写字母%f以小数形式输出单精度或双精度实数%e或%E以指数形式输出单精度或双精度实数%g或%G有系统决定是采用%f还是%e格式,以使输出结果的总宽度最小,并且不输出没意义的0%s依次输出字符串中得各个字符,知道遇到'\0'是结束(2)数据类型修饰符数据类型修饰符在%和数据类型控制符之间如:长整型"%ld",短整型"%hd"(3)输出数据所占得宽度与精度1)在%与格式字符之间插入一个整数来指示输出宽度。
若指定得输出宽度不够,系统自动以数据实际值得宽度作为输出宽度;如果指定的输出宽度多于数据实际所需宽度,数据右对齐,左边补以空格。
C语言课件第三章
三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
06c语言程序设计教案程序的控制结构—顺序结构
06c语言程序设计教案程序的控制结构—顺序结构int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。
八进制数为从低位开始,以三位一组划分为一个八进制数。
3)x格式符。
以十六进制数无符号形式输出整数。
例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。
4)u格式符。
以十进制数无符号形式输出整数。
一个有符号的(int)型数据能够用%d格式输出,也能够用%u格式输出。
要注意两类数据的取值范畴大小。
例如:无符号数据的输出。
main(){unsigned int x=65535;int y=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。
5)c格式符。
用来输出一个字符。
例如:char x=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65能够看出,一个范畴在0~255的整数,既能够用%d格式输出,也能够用%c格式输出。
输出该整数或者整数对应ASCII的字符。
6)s格式符。
用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,假如%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。
③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若m<n,则m自动取n 值输出n个字符。
C语言第3讲 数据的输入输出
XUAN SHANLI
工 业 大 学
C语言常用数学函数 为方便用户使用,C系统定义了大量函数。数学函数主要是 求解数学中的常用函数,如sinX等。数学函数的原型定义在系 统的math.h头文件中。在使用此类函数时,应在程序的开始处 加语句:#include <math.h> 函数 sin(x) con(x) 数学含义 sinX cosX 注意:①函数的参数(自变量)和 函数的值都是double类型。 ②三角函数的参数为弧度数。
注意: 条件运算符? 和 : 是一对运算符,不可分开使用。 如: int a,b,c,d; a=b=c=d=2; 则: a+1==3?(b=a+2):(c=a+3); 合 结果:表达式值为4 ,a,c 值不变, b值为4 。 例:用条件表达式编写求大数程序 void main() { int a,b; scanf(“%d,%d”,&a,&b); printf(“max=%d”,a>b? a:b); }
对于普通字符和转义字符在相应位置原样输出。 例:printf(“a=\nab\tcd%%”); 输出结果: a= ab cd%
格式说明类型表 p46表2-11
格式说明符 %d(o、 x 、 u) %c %s %f(e、g) 说明量的类型 整型 字符型 字符串 浮点型
XUAN SHANLI
♂格式说明符应和输出的表项一 一对应。 ♂输出的表项应与格式说明符类型一致。
XUAN SHANLI
工 业 大 学
2. 输入函数 scanf( ) 格式: scanf(“格式控制字符串”,地址表列); 功能:按用户指定的格式从键盘将数据输入到变量中。 控制格式与输出基本相同(p49表),输出表列给出各变量地址。 如何输入? & — 取地址运算符 &a : 表示变量a的地址 void main(void) 设 a=3,b=4 { scanf(“%d %d”,&a,&b); int a,b; scanf(“%d,%d”,&a,&b); scanf("%d%d",&a,&b); 合 scanf(“a=%d,b=%d",&a,&b); printf("%d,%d\n",a,b); 肥 } 123 456 scanf(“%c,%c,%c”,&a,&b,&c) 工 scanf(“%c %c %c”,&a,&b,&c) (1)实型变量输入时不能规定精度;scanf(“%7.2f”,&a); 业 scanf(“%c%c%c”,&a,&b,&c) (2)输入多个数据时,数据输入的分隔符应与格式说明符中的 大 分隔符相对应; (3)输入字符数据(%c)时,格式中若无分隔符,则所输入的字 学 符均为有效字符(p50)。
c语言 输入和输出
问题: 被要求输入两个数才能正常结束 原因: 程序要求输入空白符,而空白符是数据的定界符
C语言程序设计---第3章 19
2.标准输入流中残留字符问题
/* 本程序测试标准输入流中残留字符的情况 */
#include <stdio.h> int main(void) { int a; char c; scanf("%d",&a); /* 接收一个整数 */ scanf("%c",&c); /* 接收一个字符 */ printf("a=%d, c=%d\n",a,c);
C语言程序设计---第3章
9
另一种形式是:
printf("<格式控制串>", <参数表>)
“格式控制串”是由0个或多个格式转换说明组成的一个字符串 序列。格式转换说明的一般形式为: %[flag][[ width][.prec]][[h][l][L]]输出格式符 格式修饰符(见表3-2) printf(“%d”, a); 见表3-1
第3章
标准输入与输出
3.1 3.2 3.3 3.4 概述 字符输入输出函数 格式化输入和输出函数 输入和输出函数的讨论
C语言程序设计---第3章
1
3.1
概述
通过终端输入(如键盘、鼠标等),也称为标准输入 (standard input),直接向终端输出(如显示器、打印机等), 也称为标准输出(standard output)。 C语言本身没有提供输入输出语句,C语言中的所有I/O操作都 是通过函数调用来实现,而这些并非C语言一部分的输入输出函数 均以目标级程序的方式提供,并存放在一个C标准函数库中。 每一个标准库都有一个相应的头文件,该头文件包含了该库中 所有函数的函数原型及其相关信息。在调用这些库函数时,要用预 处理命令“#include”将有关的“头文件”包括到用户源程序中。 标准输入输出库函数对应的头文件是“stdio.h”。stdio是 standard input & output的缩写。因此,读者在调用标准输入输 出库函数时,你的源程序开头应该有如下编译预处理命令: #include<stdio.h> 或 #include"stdio.h"
c语言输入和输出(共22张PPT)
printf(“ptr=%s\n”,ptr);
}
设输入为:
How are you!↙
程序输出为:
How are you!
18
3.4.4 scanf()函数应用中两个最常见的问题
1.空白符问题
/* 本程序测试格式转换说明"%d\n"的应用情况 */
#include<stdio.h>
第3章 标准输入与输出
4执行关上于述格程式格序化,输式如入果和转输输入出换为函:数说的进明一步的讨论作用是引导对下一输入项进行转换。
两者的区别是: getch()函数将读入的字符不回显在屏幕上, 而getche()函数却将读入的字符回显到显示屏幕上。 (1) 调用getchar()函数输入字符时,必须用另一个变量(字符变量或整型变量)接收输入的字符。
键盘缓冲区(实际上应该称作输入流即stdin 流)。所谓键盘缓冲区,是
指在内存开辟的一片临时单元,用来暂时存放从键盘输入的字符。getchar() 函数是带键盘缓冲区的输入函数,是指当从键盘输入字符时,这些字符先
存放在键盘缓冲区,如果不敲回车键,getchar()函数并没有真正被执行( 即所谓被激活);仅当回车键也被送入键盘缓冲区后,getchar()函数才从 键盘缓冲区中读取一个字符。
5
/* 本程序调用getchar()函数输入一个字符 */
#include<stdio.h>
main()
{
char c;
/* 定义字符变量 */
c = getchar(); /* 接收键盘输入的一个字符 */
putchar(c); /* 输出该字符 */
putchar(’\n’);
C语言—数据输入与输出
C语言没有提供输入、输出语句,输入与输出是通过调 语言没有提供输入、输出语句, 用系统的标准函数实现的。 用系统的标准函数实现的。 字符的输入、 3.1 字符的输入、输出函数 一、字符输入函数getchar 字符输入函数getchar 形式: 形式:getchar( ) 功能:从终端(如键盘)输入一个字符。 功能:从终端(如键盘)输入一个字符。 说明: 说明: 括号中无参数; 1)括号中无参数; 使用该函数时,程序前须有#include stdio.h stdio.h” 2)使用该函数时,程序前须有#include “stdio.h ; 函数值可赋给字符或整型变量。 3)函数值可赋给字符或整型变量。
2、输出项表:由逗号隔开的若干个输出项,输出项可 、输出项表:由逗号隔开的若干个输出项, 以是变量、常量、函数、表达式等。 以是变量、常量、函数、表达式等。 3、格式字符的个数、类型与输出项的个数、类型应相 、格式字符的个数、类型与输出项的个数、 匹配。 匹配。 4、整型数据的输出: 、整型数据的输出: 格式字符: 格式字符: d 例:int a=12; o unsigned b=12; x printf(“%d,%o,%x,%u”, a, a, a, b); u 输出: 输出: ld 12,14,c,12 , , , mld
2、输入项地址表:若干用逗号隔开的地址项组成,其 、输入项地址表:若干用逗号隔开的地址项组成, 逗号隔开的地址项组成 中的地址项形式: 变量名 中的地址项形式:&变量名 3、 、 1)若有:scanf(“%d%d”, &a,&b); )若有: 则输入时打入: ﹍ (回车), ),或 则输入时打入:2﹍3(回车),或: 2)若有:scanf(“%d, %d”, &a,&b); )若有: 则输入时打入: 则输入时打入:2, 3(回车); (回车); 3)若有:scanf(“%d: %d”, &a,&b); )若有: 则输入时打入: 则输入时打入:2: 3(回车); (回车); 4)若有:scanf(“a=%d, b=%d”, &a,&b); )若有: 则输入时打入: 则输入时打入:a=2, b=3(回车)。 (回车)。 回车) 2(回车) 回车) 3(回车)
c语言_数据的输入和输出
%m.nf, %-m.nf, %ms, %-ms等
2020/8/13
17
§3 顺序结构程序设计举例
§3 顺序结构程序设计举例
开始
X=10.2,y=20.5, 如何交换两个变量的值? 输入x,y
120.52
210.52
main( )
t=x
x
y { double x,y,t;
scanf(“%lf,%lf”,&x,&y); x=y
21
上机与作业一
第三章 C数据的输入和输出 必做题P48
3. 计算圆球体积:V=(4/3)πR3
4. 计算摄氏温度:C=(5/9)(F-32) 附. 输入三个整数a,b,c,求它们的平均值ave 。
• 要求按如下形式输出: • average of **(a), **(b) and **(c) is **. **(ave)
第三章 数据的输入和输出
2020/8/13
1
目录
第三章 数据的输入和输出
§1 基本输出函数 §2 基本输入函数 §3 顺序结构程序设计举例
2020/8/13
2
§1 基本输出函数
§1 基本输出函数
C中没有专门的输入输出语句。输入 输出操作通过输入、输出函数实现。
本章介绍两个基本的输出函数(字符 输出函数、格式输出函数)和两个基本 的输入函数(字符输入函数、格式输入 函数)。
5与8之前空
5,8 4个字符位
printf(“a=%d,b=%d\n”,a,b); a=5,b=8
printf(“%5d%5d\n”,a,b);
58
printf(“Turbo C”);
Turbo C
以八进制和十六进制数据形式输出时,输出的
四川大学《c语言程序设计》课件-第3章 键盘输入与屏幕输出
Please input a and b: 123456↙ a=12, b=56, a+b = 68
30/44
输入数据的格式控制——例3.9
#include <stdio.h> main() {
int a, b;
12 34↙
scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); }
%d decimal 以带符号十进制整数输出
%f float 以小数形式输出浮点数(6位小数)
%e exponent 以标准指数形式输出(6位小数)
%g
选用%f,%e中输出宽度较小的一种格式
%o octal 以八进制无符号整数输出(无前导0)
%x hex
以十六进制无符号整数输出(无前导0x)
%u unsigned 以十进制无符号整数输出
例:
printf("Value is:%10f", 32.6784728);
6 digits (default) Value is: 32.678473
10 个字符长度
19/44
printf 函数 – 浮点数输出
例:
printf("Value is:%10.5f", 32.6784);
5 digits Value is: 32.67840
break
do~while() return
变量定义语句
int a, b, c; 表达式语句
c = a + b; 函数调用语句
printf("Hello World!"); 复合语句 空语句
C语言数据输入与输出
s格式符:输出一个字符串
(1)%s:原样输出字符串;
如:printf(“%s”,“CHINA”)输出:CHINA (2)%ms:输出字符串占m列;(m全输出m左补空格); (3)%-ms:输出字符串占m列;(m字符串靠右补空格); (4)%m.ns:输出字符串占m列,但只取串左端n个字符。这 n个字符输出在m列的右侧,左补空格。 (5)%-m.ns:输出字符串占m列,但只取串左端n个字符。这 n个字符输出在m列的左侧,右补空格。若n>m,则m自 动取n值,即保证n个字符正常输出。
字母前全有%
(1) d (2) o (3) x (6) s (9) g (4) u (7) f (5) c (8) e
d格式符:输出十进制整数 • %d: • %md : 按整型数据的实际长度 输出; 输出 m 位(指定的输出字段宽度);
( 数据位数小于 m 位时左端补空格,大于 m 位时
按实际长度输出); • %ld,%mld:l 表示输出“长整型”数据,也可 以指定输出字段宽度; • 一个int型数据可以用%d或%ld格式输出; • 注: % 后面的 m ( 位数控制 ) 对于其它格式符也 适用。
printf
• 1. printf 的一般格式 • 2. 格式字符
printf 一般格式
• printf 作用:
• 向终端(或系统隐含指定的输出设备)输出若干个 任意类型的数据。
• putchar只能输出字符,而且只能是一个字符; • printf可以输出多个数据,且为任意类型。
• 一般格式:printf(格式控制,输出列表) • 如:printf(“%d , %c \n” , i,c) 格式说明: 将数据转换 为指定格式输出。 普通字符: 即需要原样 输出的字符 (逗号,空 格和换行符) 输出列表:需 要输出的数据, 可以是表达式。
C语言电子教案第3章 输入输出及顺序结构
o
o
o
在%与格式符之间插入一个整数表示指定输出的宽度.若 指定的输出宽度大于实际数据的宽度,那么数据向右靠齐, 左边补空格;若指定的宽度小于实际数据的宽度,那么按 实际数据的宽度输出. 可以采用"m.n"的格式修饰格式符来输出一个实数,这里m 和n是两个整数. 对于字符串,采用"m.n"的附加格式符来修饰格式符表示 指定字符串的总宽度为m,不足m则向右靠齐,左补空格.n 表示指定截取实际字符串的前n个字符输出.也可以省略m, 不指定总宽度. 可以在宽度之前加一个""来指定输出的数据向左靠齐.
输出表列 o 输出表列是需要输出的数据,可以是变量,常量或表达 式.输出表列可以是零项,一项或多项,若多于一项则 各项之间用逗号分隔. o 输出表列和格式说明符在个数与类型上应相匹配. 例如,printf("\n x = %d , y = %f ", x , y+1);
3.2 常用输出与输入函数 printf的格式说明符
3.2 常用输出与输入函数
程序的运行结果是: 57 5 7 67.856400,-789.124023 67.856400,-789.124023 67.86,-789.12,67.856400,789.124023,67.856400,-789.124023 6.785640e+01,-7.9e+02 A,65,101,41 1234567,4553207,d687 65535,177777,ffff,-1 COMPUTER,COM
3.2 常用输出与输入函数
printf函数在使用时的注意事项
printf函数可以输出常量,变量和表达式的值.但 格式控制中的格式符必须按从左到右的顺序,与 输出项表中每个数据在类型上一一匹配,否则将 导致数据输出错误. 类型转换字符x,e,g可以用小写字母,也可以用大 写字母.使用大写字母时,输出数据中包含的字 母也要大写.除x,e,g外,其他类型转换字符必须 用小写字母,例如%f不能写成%F. 在输入long整型数据时,一定要使用格式%ld.如 果只用了%d,将输出错误数据. 若需要输出百分号"%",则应在格式串中用连续 的两个百分号"%%"表示. 类型转换字符紧跟在"%"后面时作为类型转换字 符,否则将作为普通字符处理. printf函数的返回值通常是本次调用中输出字符的 个数.
c语言课堂教案
1第一章计算机语言及C语言概述第二章基本数据类型、运算符和表达式第三章数据的输入和输出第四章语句第五章指针初步和数组第六章函数与程序结构第七章编译预处理第八章指针第九章结构体第十章文件C语言程序设计2第一章计算机语言及C 语言概述31.11.1.1 计算机语言是指计算机能够接受和处理的、具有一定格式的语言。
用计算机语言编写的,使计算机能够完成特定任务的代码串称为计算机程序。
计算机语言经历了三个阶段:1..机器语言:由0、1代码组成的、能被机器直接理解执行的指令集合。
如:10000011就是一条单字节指令。
2.汇编语言:采用一定的助记符来代替机器语言中的指令和数据,又称为符号语言。
如:ADD A 33.高级语言:接近自然语言和数学语言的程序设计语言。
1. 汇编程序:将用汇编语言编制的程序(源程序)翻译加工成机器语言程序(目标程序)的工具。
1.12 42. 编译程序:将用高级语言编写的程序(源程序)翻译成机器语言或汇编语言程序(目标程序)的工具。
特点:一次编译,目标程序可多次使用.从高级语言程序到获得运行结果的一般过程程序库数据源程序目标程序可执行程序结果3.解释程序:直接对源代码中的语句进行解释执行,产生运行结果,它不产生目标代码。
编译连接执行51.2 CC1.2.1CC语言的发展依次为:ALGOL60CPLBCPLBC略。
(见教材)1.2.2 C6例1.1:include?stdio.h?mainprintfquotThisisaCprogram.nquot例1.2:mainint absuma123b456sumabprintfquotsum is dnquotsum 1.2.3 C7例1.3:输入任意三个整数num1、num2、num3,求三个数中的最大值。
mainint num1num2num3maxprintfquotPlease input three numbers:quotscanfquotdddquotampnum1ampnum2ampnum3 if num1gtnum2 maxnum1 else maxnum2 if num3gtmax maxnum3 printfquotThe three numbersare:dddnquotnum1num2num3printfquotmaxdnquotmax8例1.3: 求a、b和c中的大者.main /主函数/int abcmax1 / 定义变量/sc anf“ddd”ampaampbampc / 输入变量a、b和c的值/max1maxabmax1maxmax1c / 调用max函数将得到的值赋给max1 /printf“maxd”max1 / 输出最大的值/int maxxy / 定义max函数函数值为整型xy为形式参数/int xy / 对形参xy作类型定义/int z / max函数中用到的变量z也要加以定义/if xgtyzxelse zyreturnz / 将z值返回调用处/9通过对上面三个程序的讨论可以归纳如下:1C程序是由函数构成的.且至少要包含一个主函数main也可以包含若干个其它函数.2被调用的函数可以是系统提供的库函数如printf和scanf函数也可以是用户自定义的函数如例1.3中的max函数。
C语言第3章_数据的输入输出
如: scanf(“%c%c%c”,&c1,&c2,&c3); 若输入a• b• c 则ac1, • c2, b c3
17/22
例:有以下程序 #include<stdio.h> main() { int a1,a2; char c1,c2; float x,y,z; char a,b,c; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); } 若想通过键盘输入,使得al的值为12,a2的值为34 ,cl的值为字符a,c2的值为字符b,程序输出结果是 :12,a,34,b则正确的输入格式是(以下□代表空格, <CR>代表回车)( A )。 A)12a34b<CR> B)12□a□34□b<CR> C)12,a,34,b<CR> D)12□a34□b<CR>
4/22
d(int) o x(X)
以带符号的10进制形式输出整数 以8进制无符号形式输出整数 以16进制无符号形式输出整数
u(unsighed) 以无符号10进制形式输出整数
c(char) s f(float) e(E) 以字符形式输出一个字符 输出字符串
注意: long(%ld) double(%lf)
23/22
16/22
实数不许规定小数精度,像%10.4f不合法 输入格式中不能含有\n,如: scanf(“%d%d\n”,&a,&b); long型数据一定要用%ld格式输入,double型数 据一定要用%lf格式输入,否则运行结果错误。 用‚%c”格式符时,空格和转义字符作为有 效字符输入
第三章 C语言数据的输入与输出复习
l L
从上表可知:双精度实型数据的输出不要用%lf, 只要用%f即可。但长双精度实型数据的输出必须加 长度修饰符L, 例如%Lf、%Le等。
格式化输出函数printf()
printf函数的输出格式说明
每个格式说明都必须用%开头,以一个格式字
符作为结束,在此之间根据需要可以插入"宽度说
明"、长度修饰符'l'和'L"等。
(1)格式字符:格式字符用于规定输出不同的数据 类型,格式字符和它们的作用如下表,可详见附录 D。
格式化输出函数printf()
scanf函数的功能是从标准输入流中按指定格式 接收输入的数据; scanf函数的调用格式为: scanf(格式控制字符串, 地址列表);
格式控制字符串同printf
地址列表是由若干个地址组成的表列,可以是变 量的地址,或字符串的首地址
格式化输入函数scanf()
例:用scanf函数输入数据 #include "stdio.h" a在内存中的地 main() 址 &是地址运算符 {int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\nf",a,b,c); } 运行情况: 3 4 5<回车> (输入a,b,c的值) 3 ,4 ,5 (输出a,b,c的值)
C语言数据的输入与输出
在程序的运行过程中,往往需要由用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要语句,在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过对标准I/O库函数的调用实现。
最常用的输入输出函数有scanf()、printf()、getcha r()和putchar(),以下分别介绍。
3.2.1scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。
函数一般格式为:scanf("控制字符串",输入项列表);其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成。
输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔。
scanf()中各变量要加地址操作符,就是变量名前加“&”,这是初学者容易忽略的一个问题。
应注意输入类型与变量类型一致。
下面探讨控制字符串的两个组成部分:格式说明和普通字符。
1.格式说明格式说明规定了输入项中的变量以何种类型的数据格式被输入,形式是:% [ <修饰符> ] <格式字>各个格式字符及其意义见表3 - 1。
3.2.2printf()函数与格式化输入函数scanf()相对应的是格式化输出函数printf(),其功能为按控制字符串规定的格式,向缺省输出设备(一般为显示器)输出在输出项列表中列出的各输出项,其基本格式为:printf(“控制字符串”,输出项列表)输出项可以是常量、变量、表达式,其类型与个数必须与控制字符串中格式字符的类型、个数一致、当有多个输出项时,各项之间用逗号分隔。
控制字符串必须用双引号括起,由格式说明和普通字符两部分组成。
1.格式说明一般格式为:%[<修饰符>]<格式字符>格式字符规定了对应输出项的输出格式,常用格式字符见表3-2。
《C语言程序设计》课件数据的输入与输出(下)
练if(c习h[:i]=设='\r置') 密码/*输输入入是函回车数,。表即示:结密束*码/ 输入 时{ 在屏cbhre[幕ia]=k上;'\0仅'; 显示"*****",而程序接收 的} 字符串是实际输入的内容"abcde",并
判els断e i密f(c码h[i是]==否8)正/*输确入。是退格,表示删除一个字符*/
分析:
存储:字符数组
输入函数:getch()
输出要求:putchar('*')
字符串比较:#include <string.h>
strcmp(str1,str2)
8
C#语i言n程cl序u设d计e <stdio.h> 第3章 算法与基本程序设计
#m{练时inacci习在hnlau(:屏)rdpe幕设a<ss上置stwri仅密onrgd显码.h[1>示输0]=入""*a函*b*c数d*e。*","c即,h[:1而0密]程="码序"; 输接in入t收i=0; 的p字rin符tf(串"p是lea实se际in输pu入t p的as内sw容or"da: "b);cde",并 判f{o断rc(密ih=[0码i];=i<是g=e9否t;ci+h正+());确。
{ if(i==0)
continue;
putchar('\b');
putchar(' ');
putchar('\b');
i--; }
else
/*输入正常字符,并输出‘*’号
*/
C语言03数据输入与输出
例 从键盘输入大写字母,用小写字母输出
/*ch3_13.c*/ #include "stdio.h" main() { char c1,c2;
c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); }
输入:A 输出:A,65
3.1 数据输出
C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>
字符输出函数
格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1)
格式输出函数
格式:printf(“格式控制串”,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1)
zm++;
}
printf("zm=%d\n",zm);
}
输入:10
输入:11
则 a=10
则 a=17
修饰符功能
修饰符
功
能
h 用于d,o,x前,指定输入为short型整数
用于d,o,x前,指定输入为long型整数 l
用于e,f前,指定输入为double型实数
m 指定输入数据宽度,遇空格或不可转换字符则结束
*
抑制符,指定输入项读入后不赋给变量
附加格式说明符(修饰符)
说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出
附加格式说明符(修饰符)
C语言程序设计——数据输入及输出
C语言程序设计——数据输入及输出C语言是一种通用的编程语言,广泛应用于各种领域,包括软件开发、嵌入式系统和科学计算等。
在C语言程序设计中,数据的输入和输出是非常重要的部分。
本文将介绍C语言中的数据输入和输出方法,包括标准输入输出函数、文件输入输出以及格式化输入输出等。
一、标准输入输出在C语言中,使用标准输入输出函数可以实现与用户的交互,输入和输出数据。
标准输入输出函数包括printf函数和scanf函数。
1. printf函数printf是一个格式化输出函数,它可以按指定的格式输出数据。
下面是一个简单的例子:```#include <stdio.h>int main(){int num1 = 10;float num2 = 3.14;printf("整数:%d\n", num1);printf("浮点数:%f\n", num2);}```输出结果为:```整数:10浮点数:3.140000```2. scanf函数scanf是一个格式化输入函数,它可以按指定的格式接收用户输入的数据。
下面是一个简单的例子:```#include <stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的整数是:%d\n", num);}```运行程序后,会提示用户输入一个整数,用户输入后,程序将输出用户输入的整数。
二、文件输入输出除了标准输入输出函数,C语言还提供了文件输入输出函数,可以用于读写文件中的数据。
1. 文件输入使用文件输入函数,可以从文件中读取数据,并将其存储到变量中。
下面是一个简单的例子:```#include <stdio.h>int main(){FILE *fp;int num;fp = fopen("data.txt", "r");if (fp == NULL) {printf("文件打开失败\n");return 0;}fscanf(fp, "%d", &num);printf("从文件中读取的数据:%d\n", num);fclose(fp);return 0;}```上述程序打开一个名为data.txt的文件,并将文件中的数据读取到num变量中。
C语言第3章
三、数据输入 scanf函数是C scanf函数是C语言提供的标准输入函数。它的作 用是在终端设备上输入数据。 1、scanf函数的一般调用格式 scanf函数的一般调用格式 格式:scanf(格式控制,地址项表) 格式:scanf(格式控制,地址项表); 功能:接受用户的键盘输入,并将输入的内容保 存在指定的变量所表示的地址或数组元素中。 例:用scanf函数输入数据。 例:用scanf函数输入数据。
16
2、scanf函数中常用格式说明 scanf函数中常用格式说明 格式控制与printf类似(详见教材P28)。但是 格式控制与printf类似(详见教材P28)。但是 ①输入短整数时,在% ①输入短整数时,在%和d之间必须加h;输入 之间必须加h double型数时,在% f(e)之间也必须加l double型数时,在%和f(e)之间也必须加l。否则得不 到正确的数据。 ②对unsigned型变量所需的数据,可用%u,%d或 ②对unsigned型变量所需的数据,可用%u,%d或 %o,%x格式输入。 o,%x格式输入。 ③可以指定输入数据所占列宽。如: scanf(“%3d%3d” scanf(“%3d%3d”,&a,&b); 输入:123456↙ 输入:123456↙ 系统自动将123赋给变量a 456赋给变量b 系统自动将123赋给变量a,456赋给变量b。但此 法用于字符时要注意。如:
7
例4:short int a=-1; a=printf(“%d,%o”,a,a); 输出结果为: 1,37777777777 输出结果为:-1,37777777777
短整型变量a怎么按一般整型的格式(长度) 短整型变量a怎么按一般整型的格式(长度)输出呢? 这是我们输出时没有按短整型类型输出,而是按一般 整型输出了!改为
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2 数据的输入
4.2.1 格式输入函数
一般形式: scanf(格式控制字符串, 地址表列) “格式控制字符串”的含义同printf函数, “地址表列”:要求是变量的地址,或字符串的首地址. 例如: int a,b,c; scanf(“%d%d%d”,&a,&b,&c); 说明: * scanf 函数中的“格式控制”后面应当是变量地址 而不是变量名。 * 输入数据时,在两个数据之间以一个或多个空格间隔 ,也可以用回车键、跳格键tab分隔。
共 25 页 第 21 页
提示注意:
输入double型数据,必须用格式说明符%lf或%le,
输入long型数据,必须用%ld。 标准C在scanf中不使用%u说明符,对unsigned型数 据,以%d或%o、%x格式输入。 %后的“*”为附加说明符,用来表示跳过它相应的 数据。 输入时格式控制符中不能加“\n”。 在scanf函数的格式控制字符串中尽量不要出现普 通字符,尤其不能将输入提示放在其中。需要显示 输入提示应该调用printf函数实现。
C语言基础
第三章
数据的输入和输出
共 25 页
第 1 页
本章要点
• 掌握C语言中输入输出数据的方法
• 掌握各种格式的使用
共 25 页
第 2 页
数据输入输出的概念 输出:从计算机向显示器、打印机等外部设 备输出数据。 输入:从标准输入设备键盘、鼠标等向计算 机输入数据。 C语言不提供输入输出语句,输入输出操作 是由C函数库中的函数实现。 使用系统库函数时,要用预编译命令 “#include”将有关头文件包括在用户的源文 件中。如#include “stdio.h”
共 25 页
第 12 页
[例 ] #include"stdio.h" VC++下 main(){ char *a; a="hello,world"; printf(":%10s:\n",a); printf(":%-10s:\n",a); printf(":%20s:\n",a); printf(":%-20s:\n",a); printf(":%20.10s:\n",a); printf(":%-20.10s:\n",a); printf(":%.10s:\n",a); printf(":%s:\n","very good!"); }
输出
共 25 页
第 17 页
4.1.2 字符输出函数
格式: putchar(字符变量) 功能 :在标准输出设备上,输出指定的字符。 说明: 一次调用只能输出一个字符。 例:#include <stdio.h> main( ) { char a,b,c; a=„B‟;b=„O‟;c=„Y‟; putchar(a);putchar(b);putchar(c); } 输出:BOY
共 25 页 第 4 页
[例 ]:
#include <stdio.h> main( ) 格式说明(格式字符) { int a=3, b=4; printf(“a=%d b=%d”,a,b); } 运行结果: 输出表列 普通字符 a=3 b=4
共 25 页
第 5 页
3.格式说明符
一般格式:%[-][m][.][n][l]格式符
a=12,b=345.000000,c=6789.000000
共 25 页 第 23 页
4.2. 2 getchar函数(字符输入函数)
一般形式:getchar( ) ------没有参数 功能:从键盘输入一个字符。 说明:1)只能输入一个字符 2)可以将获得的字符赋给int 型或char型的变量 [例 ] #include <stdio.h> main() { char c; c=getchar( ); putchar(c); } 运行时键入字符‘a‟,则其输出为:a
1) %f , 不指定字段宽度,由系统自动指定,使整数部 分全部输出,并输出6位小数(输出双精度数据, 也是6位,但误差降低)。 2) %m.nf , 指定输出的数据共占m列,其中有n位小 数.若数据长度小于m,则左端补空格。
例:float x=15.3,y=222.225111;
printf(“%f,%6.2f\n”,x,y);
共 25 页 第 24 页
本章学习要点
1.格式输入函数:scanf, 格式输出函数:printf, 常用格式:%d, %f, %s, %c ,%o, %ld 2. scanf 函数中的“格式控制”后面是变量地址,而不 是变量名. 3. putchar函数(字符输出函数) 4. getchar函数 (字符输入函数)
共 25 页 第 3 页
3.1 数据输出
3.1.1 格式输出函数
1. 函数的基本功能 格式:printf(格式控制串,输出表列) 功能:从标准输出设备上,按指定的格式输出对应 的变量。 2. 函数说明: (1) 格式控制串由双引号括起来,由“%”和格式符 以及普通字符(即需要原样输出的字符组成)。 (2)输出表列是需要输出的一些数据,可以是常量、 变量或表达式。 (3)输出的参数必须与格式控制符中的格式说明在类 型、个数和位置上一一对应。
1234 1234
实际 左补空
1234
左对齐,右补空
共 25 页 第 8 页
(2)o格式符
以八进制数形式输出整数。
将内存单元中的各位的值(0或1)按八进制形式输出, 输出的数值不带符号,将符号也作为八进制数的一部分 输出。 例如,-1在内存单元中(以补码形式存放)如下:
int
a=-1;
-1: 1 1 11 11 11 11 11 11 11
printf(“%d,%o”,a,a);
输出:
VC++下
-1,177777
共 25 页 第 9 页
(3) x格式符,以十六进制数形式输出整数。 (4) u格式符,以十进制形式输出无符号型数据。 [例 ] #include <stdio.h> main() { unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%u\n”,a,a,a,a); printf(“b=%d,%o,%x,%u\n”,b,b,b,b); } 输出: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534
* 回车,空格 * 宽度结束 * 非法输入
int k; scanf(“%3d”,&k); 输入:123456789 k为:123
共 25 页 第 20 页
* 格式控制字符串中若包含普通字符,则输入时必须 照原样输入普通字符,否则将导致输入结束。 如:int a,b,c; scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入:a=1,b=2,c=3<回车> * 数值型数据和字符型数据混合输入方法 main() { int a,b,c,d,e; scanf(“%d%c%c%c%d”,&a,&b,&c,&d,&e); printf(“a=%d,b=%c,c=%c,d=%c,e=%d”,a,b, c,d,e); } 输入:123abc789<回车> 输出:a=123,b=a,c=b,d=c,e=789
输出: a,97
a,97
共 25 页 第 11 页
(6) s格式符 输出一个字符串。 说明: --若不指定字符宽度和对齐方式,则输出全部字符串. 例如: printf("%s", "CHINA");
程序运行输出: CHINA --若指定宽度m,实际字符个数大于m,按实际宽度输 出;如果实际字符个数小于m,字符右对齐,左边填 空格。 例如: printf(“s1=%s,s2=%3s,s3=%-5.2s,s4=%.3s", "abcd", "abcd", "abcd", "abcd") ; 程序运行输出: s1=abcd,s2=abcd,s3=ab ,s4=abc
共 25 页 第 22 页
例:
#include <stdio.h> main() { int a; float b,c; scanf(“%2d%3f%4f”,&a,&b,&c); printf(“a=%d,b=%f,c=%f\n”,a,b,c); } 输入:12345678987654321 输出?
共 25 页
第 7 页
(1) d格式符: 输出十进制整数。 %d --按整型数据的实际长度输出。 %md --m为指定的输出字段的宽度.若数据的位数小 于m,则左端补以空格;若大于m,则按实际位数输出。 %ld --输出长整型数据.
例:#include"stdio.h"
main(){ int a=1234; printf("%3d\n",a); printf("%5d\n",a); printf("%-5d\n",a); }
共 25 页 第 19 页
* 输入时不允许规定精度,可以指定域宽 int a ;scanf(“%3d”,&a);
scanf(“%3d%3d”,&a,&b); 输入123456 系统自动将123赋给a,456赋给b
float x; scanf(“%8.2f ”,&x); * 输入时,遇下列情况结束