第2章 常用输入输出函数
常用输入输出函数总结

常⽤输⼊输出函数总结getchar()函数从输⼊流中读取⼀个单个的字符。
如果输⼊的是字符串,函数也只读取头⼀个字符,如果下⾯还有getchar函数则接着上个getchar函数读到的下⼀个字符读⽽不需要继续输⼊就会返回⼀个读取的字符,这⾥涉及到缓冲,就是我们输⼊的字符流其实是存在于缓冲区中,所以下⼀个getchar函数才能接着读取;getchar有⼀个int型的返回值.当程序调⽤getchar时.程序就等着⽤户按键.⽤户输⼊的字符被存放在键盘缓冲区中.直到⽤户按回车为⽌(回车字符也放在缓冲区中).当⽤户键⼊回车之后,getchar才开始从stdio流中每次读⼊⼀个字符.getchar函数的返回值是⽤户输⼊的第⼀个字符的ASCII码,如出错返回-1,且将⽤户输⼊的字符回显到屏幕.如⽤户在按回车之前输⼊了不⽌⼀个字符,其他字符会保留在键盘缓存区中,等待后续getchar调⽤读取.也就是说,后续的getchar调⽤不会等待⽤户按键,⽽直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待⽤户按键.注意:当⽤getchar进⾏输⼊时,如果输⼊的第⼀个字符为有效字符(即输⼊是⽂件结束符EOF,Windows下为组合键Ctrl+Z, Unix/Linux下为组合键Ctrl+D),那么只有当最后⼀个输⼊字符为换⾏符’\n’(也可以是⽂件结束符EOF, getchar才会停⽌执⾏,整个程序将会往下执⾏。
譬如下⾯程序段:while((c = getchar()) != EOF){putchar(c);}执⾏程序,输⼊:abc,然后回车。
则程序就会去执⾏puchar(c),然后输出abc,这个地⽅不要忘了,系统输出的还有⼀个回车。
然后可以继续输⼊,再次遇到换⾏符的时候,程序⼜会把那⼀⾏的输⼊的字符输出在终端上。
对于getchar,肯定很多初学的朋友会问,getchar不是以字符为单位读取的吗?那么,既然我输⼊了第⼀个字符a,肯定满⾜while循环(c = getchar()) != EOF的条件阿,那么应该执⾏putchar(c)在终端输出⼀个字符a。
《C语言程序设计》02 数据类型及输入输出函数

#include < stdio.h > 或
关键字 包含函数的头文件 #include ” stdio.h ”
区别
#include < stdio.h > 与 #include ” stdio.h ”
(1)#include<stdio.h>格式来引用标准库的头文件, 编译器将从标准库目录开始搜索。 (2)#include”stdio.h”格式来引用非标准库的头文 件,编译器将从用户的工作目录开始搜索。
{
short a , b ; //同时定义两个短整型变量a和b
a = 32767;
//为a变量赋值
b=a+1;
printf(" a = %d , b = %d \n" , a ,b );
}
我们倒水倒满了水就流出来了,那计算机呢?
实型
• 实型也称为浮点型,例如:3.14,-8.9等带有小数
部分的数值数据就称为浮点数
类型
说明
字节数
有效数字
float
单精度浮点型 取值范围:3.4E-38~3.4E+38
4
double
双精度浮点型 取值范围:1.7E-08~1.7E+308
8
long double
长双精度实型 取值范围:1.7E-08~1.7E+308
8
6~7 15~16 15~16
#include <stdio.h>
实型数据精度示例
void main()
{
float a;
double b;
a=55555.55555555F;
//float类型数值一般需要添加后缀”F”或”f”
输入输出函数PPT教学课件

如: printf("%3s,%10s,%10.5s,%.4s\n","abc","def ghij","klmnopqrst","uvwxyz");
abc, defghij, klmno,uvwx
2020/12/10
如果整数的有效位数大于n或未指定n,则n不起作用;如果小 于n,则在左端补0直到n位。
如:printf("%3d,%6d,%6.5d\n",1250,1250,1250);
1250, 1250, 01250
注意:%0m.nd
以“0”填充左端空格。
2020/12/10
6
%m.nf
指定实数(浮点数)输出的宽度即总位数(m) 与小数位数(n)。
输入输出函数
2020/12/10
1
主要内容
C语言中不同类型数据的输入输出方法。
格式化输入输出函数
scanf() printf()
单字符输入输出函数
getchar() putchar()
2020/12/10
2
一、格式化输出函数printf()
可用于所有类型数据的输出。
2020/12/10
2020/12/10
13
(五)printf()函数输出量的计算顺序
VC与TC规定 :从右到左计算各表达式的 值,再输出结果。
[例] Li04001.c
2020/12/10
14
二、格式化输入函数 scanBiblioteka ()可用于所有类型数据的输入。
输入输出函数

前面的几个例子都用到了输出函数printf,例1-3还用到了输入函数scanf,这里我们先简单介绍一下它们的格式,以便后面使用。
scanf和printf这两个函数分别称为格式输入函数和格式输出函数。
其意义是按指定的格式输入输出值。
因此,这两个函数在括号中的参数都由以下两部分组成:1) 格式控制串:格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。
在printf函数中可以在格式控制串内出现非格式控制字符,这时在显示屏幕上会显示源字符串。
各种类型的格式表示方式请参考:C语言格式输出函数printf()详解。
在scanf函数中也可以在格式控制串内出现非格式控制符,这时会将输入的数据以该字符为分隔。
各种类型的格式表示方式请参考:C语言scanf()函数。
2) 参数表:参数表中给出了输入或输出的变量。
当有多个变量时,用英文逗号(,)分开。
例如:1.printf("sine of %lf is %lf\n",x,s);2.// %lf为格式字符,表示按双精度浮点数处理,它在格式串中两次现,对应了x和s两个变量3.// 其余字符为非格式字符则照原样输出在屏幕上。
4.scanf("%d %fa%c",&intNum,&floatNum,&c);5.// %d, %f, %c为格式字符6.// 表示将输入的数据分别以整数、浮点数和字符形式赋值给变量intNum, floatNum,c7.// 其中的空格和a为分隔符8.// 变量intNum, floatNum,c都有一个'&'符号,表示取地址【例1-4】对例1-3稍加修改,在printf中使用多个参数,在scanf中使用'|'作为分隔符。
1.#include<stdio.h>// 包含stdio.h头文件2.3.int max(int,int);// 函数声明4.5.int main(){6.int a, b, n;// 声明两个整型变量7.printf("Input two integers: ");// 以空格为分隔8.// 以'|'为分隔符,将输入的两个整数分别赋值给a, b9.scanf("%d|%d",&a,&b);10.// 以整数形式输出a、b和最大值,a, b, max(a,b)为参数列表11.n =max(a, b);12.printf("The max between %d and %d is %d.\n", a, b, n);13.return0;14.}15.16.// 函数定义17.int max(int num1,int num2){// num1, num2为形式参数(形参)18.if(num1>num2){// 如果num1大于num219.return num1;// 返回num1并结束max函数20.}else{// 如果num2大于num121.return num2;// 返回num2并结束max函数22.}23.}运行结果:Input two integers: 12|34↙The max between 12 and 34 is 34.上面例中程序的功能是由用户输入两个整数,程序执行后输出其中较大的数。
一图归纳C语言中文件的输入输出函数

电子技术与软件工程Electronic Technology & Software Engineering软件开发与应用Software Development And Application一图归纳C语言中文件的输入输出函数任波阳(山东科技大学山东省青岛市266000 )摘要:本文通过输入输出关系图,加深对“输入”“输出”概念及相关知识点的理解,同时总结归纳各类“输入”“输出”函数的 用法,使文件学习更加系统,透彻。
关键词:C语言;输入输出;格式控制1输入输出的关系图在编程学习中,输入与输出一直是较难理解且容易混淆的知识 点,图1为各类“输入”“输出”的关系图。
在计算机语言中,文件与键盘、屏幕、打印机、鼠标等,都 属于外围设备。
其中从内存中写数据至文本文件,为输出;从文 本文件内读取数据至内存中,为输入。
从键盘、鼠标等外围设备 向内存中存储信息,为输入;使内存中的信息通过屏幕、打印机 等设备显示出来,为输出。
C语言中,可以将信息从内存输出到文 件中的函数有:fwrite、fprintf、fputc、fputs、putw;可以将信息从 文件输入到内存中的函数有:fread、fscanf、fgetc、fgets、getw;可以将信息通过键盘等外围设备输入到内存中的函数有:scanf、getcha^g e ts可以将信息从内存输出到屏幕等外围设备上的函数有:printf、putchar、puts。
C语H函数库中的“标准输入输出函数”包括:格式输入输出 函数printf和scanf,字符输入输出函数putchar和getchar,字符串输 入输出函数puts和gets。
C语言函数库中的“文件读/写(输入输 出)函数”包括:格式化读/写函数fscanf和fprimf,字符读/写函数fgetc和fputc,字符串读/写函数fgets和fputs,字读/写函数 getw和putw函数,数据块读/写函数fread和fwrite。
专题2 输入输出函数及顺序结构

(8)格式控制项中格式说明个数与输入项的个数要相同,若输入数据少于格 式说明个数项,则等待输入,直满足为止。 如scanf(“%d%d”,&a,&b); 输入 10 后不再输入数据,程序不会执行下一 语句,屏幕一直处于等待输入数据状态,直到输入的数据的个数与格式说 明的个数相同时,才会结束等待输入状态。若输入数据多于要求可格式说 明的个数,则多余的数据不不消失,存入缓存,留给下一个输入操作时的 输入数据。如scanf(“%d%d”,&a,&b);输入 2 5 12后,则把2给a,5给b,12 存入缓存。
8.有以下程序段 [08年4月] char ch; int k; D ch='a'; k=12; printf("%c,%d,",ch,ch,k); printf("k=%d\n",k); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 9.程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);的 输出结果是[09年3月] A A) 123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930 10.若变量x,y已定义为int类型且x的值为99,y的值为9,请将输入语句 printf(【7】,x/y);补充完整,使其输出的计算结果形式为:x/y=11.[09 年3月]
(3)格式字符的个数与输出项的个数应相同,如果格式字符的个数少于输出项 的个数,多余的输出项不会输出,如果说明项的个数多于输出项的个数,多余 的格式输出不定值(或0) 例1.如有:int x=10,y=5;执行printf(“%d”,x,y); 格式说明中只有一个%d,而输出项有x,y两项,因此则输出结果为:10,多余项y不 输出。 例2.如有:int x=10,y=5;执行printf(“%d,%d,%d”,x,y); 格式说明中有三个%d,而输出项有x,y两项,因此则输出结果为:10,5,0023342 其中0023342不定值。 (4)格式控制串中,除格式字符以外的其它字符原样输出 例1. main() { int h=12; float a=5.5,c; printf(“a=%d,b=%f,c的值为:%f”,h,a,h*a);} 在以上格式控制串中,a=,b=,c的值为:不是格式说明符,属于其它字符, 原样输出,运行后结果为:a=12,b=5.5,c的值为:66.0
c语言中基本的输入输出函数有

C语言中基本的输入输出函数有:putchar ():把变量中的一个字符常量输出到显示器屏幕上;getchar ();从键盘上输入一个字符常量,此常量就是该函数的值;printf ();把键盘中的各类数据,加以格式控制输出到显示器屏幕上;scanf ();从键盘上输入各类数据,并存放到程序变量中;puts ():把数组变量中的一个字符串常量输出到显示器屏幕上;gets ():从键盘上输入一个字符串常量并放到程序的数组中.sscanf(); 从一个字符串中提取各类数据。
putchar() 和getchar() 顾名思议就是从输入流中获取一个字符和输出一个字符,比较简单,不再多讲。
例子如下:char c = getchar();putchar(c);格式化输入输出scanf()和printf()是最有用的,所以重点讲一下。
printf():一般形式:printf("格式控制".输出列表);eg : printf("a=%d,b=%f,c=%c\n",a,b,c); 1;格式控制.格式控制是用双引号括起来的字符串,也称"转换控制字符串",它包含以下两部分信息.格式说明:由"%"和格式字符组成,如%d,%f,%c,他的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的.普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如\n,\t。
2;输出列表就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开.一些特殊字符的输出:单引号,双引号,和反斜杠的输出在前面加转义字符”\”如:”\’”, “\””, “\\”%的输出用两个连在一起的%%,即printf(“%%”);常用的格式说明如下:格式字符d 以十进制形式输出带符号整数(正数不输出符号)o 以八进制形式输出无符号整数(不输出前缀O) x 以十六进制形式输出无符号整数(不输出前缀OX)u 以十进制形式输出无符号整数f 以小数形式输出单精度实数lf以小数形式输出双精度实数e 以指数形式输出单、双精度实数g 以%f%e中较短的输出宽度输出单、双精度实数c 输出单个字符s 输出字符串这里强调一下:网上很多文章都说f 和lf是一样的,即不管单精度,双精度浮点数,都可以用f, 但我在POJ上做过测试,输出Double时用f确实也可以,但读入时,用f就报WA,所以大家如果对Double 进行读写的话,都用lf吧。
C++常用的输入输出函数

// 接受一个字符串,可以接 输入:jkljkljkl
收空格并输出,需包含 “#include<string>”
#include<iostream>
#include<string>
输出:jkljkljkl
输入:jkl jfksldfj jklsjfl 输出:jkl jfksldfj jklsjfl
\f 清屏并换页 \r 回车 \t Tab符 \xhh 表示一个ASCII码用16进表示
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
using namespace std;
int main ()
{
char ch;源自ch = getchar(); //不能写成getchar(ch);
cout<<ch<<endl;
}
输入:jkljkljkl 输出:j
1. cout<<与控制符 2. puts() 3. putch() 4. putchar() 5. printf() // C函数
描述 置基数为10 置基数为16 置基数为8 填充字符为c 显示小数精度为n位 设域宽为n个字符
左对齐 右对齐
#include <iostream>
#include <iomanip> //要用到格式控制符
using namespace std;
int main(){
double amount = 22.0/7;
最常见的输出方法,标准输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明: • 除了X,E,G外,其他各式字符必须用小写。 • 可以在printf函数中的“格式控制”字符串中包含转
scanf(“%d%d%d”,&a,&b,&c);
个数据之间以一个或 多个空格间隔,也可
printf(“a=%d,b=%d,c=%d\n”,a,以b用,Ecn)t;er键、
}
Tab键。
运行情况:
请输入a,b,c:
345
(输入a,b,c的值,)
a=3,b=4,c=5
(输出a,b,c的值)
• scanf函数的格式说明与printf函数的相似, 以%开始,以一个格式字符结束,中间可插 入附加的字符。 例:
void main()
{
char a,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘ \n’); putchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);
• 一般格式:scanf(格式控制,地址表列);
同printf函数
是由若干个地址组成的表列,可以是变量的 地址,或字符串的首地址
例 用scanf函数输入数据。
#include<stdio.h> void main() {
int a,b,c;
a在内存中的地 址
&是地址运算符
printf(“请输入a,b,c:\n”); 输入数据时,在两
位小数。 #include <stdio.h> #define PI 3.1415926 void main ( ) {double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;
s1=2.0*PI*r1; s2=2.0*PI*r2; s3=2.0*PI*r3;
printf(“s1=%10.2f\ns2=%10.2f\ns3=%10.2f\n",s1,s2 ,s3);
2.2 printf函数
• printf函数(格式输出函数)的作用是向系 统隐含指定的输出设备(显示器)输出若干 个任意类型的数据 。
• printf函数的一般格式为: printf(格式控制,输出表列);
例: printf(”%d,%c\n”,i,c);
• printf函数的参数包括两部分: (1)“格式控制”是用双引号括起来的字符串,也 称“转换控制字符串”,它包括两种信息。
① 格式说明。格式说明由“%”和格式字符组 成,如%d、%f等。它的作用是将输出的数据 转换为指定的格式输出。
② 普通字符或转义字符。即需要原样输出的字 符。
(2) “输出表列”是需要输出的一些数据,可以是 常量、变量或表达式。
• printf函数的例子:
printf(“a=%d b=%d”,a,b)
(2) %c %c:用来输出一个字符。 %mc:输出字符数据的宽度为m,位数不
足时在左侧补空格。
c=‘a’;
printf(“%3c”,c); 输出:_ _ a
• 例: • #include<stdio.h> • void main() •{ • char ch='A'; • int x=97; • printf("%c,%3c,%d\n",ch,ch,ch); • printf("%c,%d,%4d\n",x,x,x); •}
(Tab)键或遇非法输入,认为该数据结束。 例2-20
2.4 字符数据的输入输出
2.4.1 putchar函数
• putchar函数(字符输出函数)的作用是向 终端输出一个字符。
• 一般形式为
putchar(c);
c可以是字符型/ 整型变量或常量
例 输出单个字符。
运行结果:B O
Y
#include<stdio.h>
被省掉了。
例 输出双精度数时的有效位数。
#include<stdio.h> void main() {
float x=123.45; double y=456.5263789;
printf("%f,%7.2f\n",x,x); printf("%f,%7.2f\n",y,y); }
例 求3个圆的周长,输出结果时上下按小数点对齐,取两
#include<stdio.h>
void main() {float x,y;
运行结果: 555555.562500
x=222222.222;y=333333.333;
printf("%f\n",x+y);
}
结果中只有前七位是有
效数字。由于x和y是单
精度变量,所以x+y也只
能保证7位的精度,后面
几位是没有意义的。
运行程序:
从键盘输入字符‘a’按 Enter键 屏幕上将显示输出的字符‘a’ a↙ a
• printf("input a character\n");
• ch=getchar(); • ppuurittnccthhfa(a“rr(%(gcceh”t,c)g;heatrc(h))a;r());
}
(4)s格式符,用来输出一个字符串。 例: printf(“%s”,”CHINA”);
输出字符串:CHINA %ms:输出字符串占m列,串长小于m,则 左补空格,串长大于m,则全部显示 %-ms:输出字符串占m列,串长小于m,则 右补空格,串长大于m,则全部显示 %m.ns:输出m列,只取字符串中左端n个字 符,串小于m,则左补空格 %-m.ns:输出m列,只取字符串中左端n个 字符,串小于m,则右补空格
输出为: -1,37777777777
(7) %x。以16进制数形式输出整数。同样不会 出现负的十六进制数。
例:
int a= -1; printf(“%x,%o,%d”,a,a,a); 输出结果为
ffffffff,37777777777,-1 同样可以用 “%lx”输出长整型数,也可以 指定 输出字段的宽度,如“%12x”。
输出数据 输入:从输入设备(键盘,鼠标,扫描仪)向计算机
输入数据.
(二).C语言本身不提供输入输出语句,输入和 输出操作是由C函数库中的函数来实现的
例如: 字符输入函数:getchar 字符输出函数:putchar 格式输入函数:scanf 格式输出函数:printf 字符串输入函数:gets 字符串输出函数:puts
}
运行结果:BOY
3.5.2 用getchar函数输入一个字符
• getchar函数(字符输入函数)的作用是从计算 机终端输入一个字符。
• getchar getchar()
函数的值就是 从输入设备得
到的字符
注意:如果输入多个字符,只接受第一个字符
• #include<stdio.h> • void main() •{ • char ch;
1.234560 e+002
6列
5列
C编译系统自动指定给出数字部分 的小数位数为6位,指数部分占5位
(6) %o。以8进制整数形式输出。由于是将 内存单元中的各位的值(0或1)按八进制 形式输出,因此输出的数值不带符号,即将 符号位也一起作为八进制数的一部分输出。
例:int a=-1; //4字节为例 printf("%d,%o",a,a);
• #include<stdio.h> • void main() •{ • int a=-2,b=25,c=123; • long x=456710; • printf("%d,%4d,%-4d,\n",a,b,b); • /*%-4d中的负号表示显示时在右端补空格*/ • printf("%5d,%2d\n",c,c); • printf("ld,%8ld\n",x); •}
• #include<stdio.h>
• void main()
•{
• printf(“%3s,%7.2s,%.4s,%-5.3s.\n", "STUDENT", "STUDENT", "STUDENT", "STUDENT");
•}
(5)e格式符,用格式说明 %e指定以指数形式 输出实数。
例:printf(″%e″,123.456);输出如下
第2章 常用输入输出函数
• 2.1 C语言的输入输出概述 • 2.2 printf函数 • 2.3 scanf函数 • 2.4 字符数据的输入输出 • 2.5 字符串的输入输出
2.1 C语言的输入输出概述
(一).所谓输入输出是以计算机主机为主体而言的 输出:从计算机向外部输出设备(显示器,打印机)
(3) %f
%f 用来输出实数(包括单、双精度),以 小数形式输出,不指定整个字段的长度,由 系统自动指定。
一般的处理方法是:整数部分全部输出,并 输出6位小数。
%m.nf 指定数据占m列,其中小数位数为 n列,如果整体位数小于m,则左端补空格 (右对齐)。
%-m.nf (左对齐)
例 输出实数时的有效位数。
(三).在使用系统库函数时,要用预编译命令 “#include”将有关的“头文件”包括到用 户源文件中。
例如:在调用标准输入输出库函数时,文件开头 应该有: