C语言中的数据输入与输出

发布时间:2024年01月20日
C语言函数库中有一批“标准输入输出函数”,它是以标准的输入输出设备(一般为 终端设备)为输入输出对象的。其中有: putchar( 输出字符)、 getchar (输入字符)、 printf (格式输出)scanf( 格式输入)、 puts( 输出字符串)、 gets( 输入字符串)。
可以将它们分为三大类:单个字符输入输出 、格式化的输入输出 、字符串的输入输出 (*) 。
一、单个字符输入输出?
1、 putchar 函数 (字符输出函数)的作用是向终端输出一个字符。其一般形式为 putchar(c)
它输出字符变量c 的值,c 可以是字符型变量或整型变量。
例如:输出单个字符。
# include <stdio. h>
void main()
{
? ? char a, b, c;
? ? a='B b='O';c='Y';
? ? putchar(a) ;putchar(b) ;putchar(c); putchar ('\n');
}
运行结果:
BOY
用putchar 函数可以输出能在屏幕上显示的字符,也可以输出控制字符,如 putchar('\ n') 的作用是输出一个换行符,使输出的当前位置移到下一行的开头。
也可以输出其他转义字符,例如
putchar('\101')? ? ? ? ?(输出字符 'A')
putchar(1\ 11)? ? ? ? ?(输出单撇号字符/II)
putchar('\ 0151)? ? ? (输出回车,不换行,使输出的当前位置移到本行开头
2、 getchar 函数 (字符输入函数)的作用是从终端(或系统隐含指定的输入设备)输入一
个字符。 getchar 函数没有参数,其一般形式为 getcha r () 。
函数的值就是从输人设备得到的字符
例如:# include <stdio. h>
void main()
{
char c;
c= getcharO;
putchar(c) ;
putchar('\n');
}
在运行时,如果从键盘输入字符 'a' 并按 Enter 键,就会在屏幕上看到输出的字符'?a'。
注意 : getchar 函数只能接收一个字符。 getchar 函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。
二、格式化的输入输出?
1. printf 函数
printf 的一般格式为
printf( 格式控制,输出表列)
(1)格式控制:
printf("b= %d\n",10);
普通字符:?
? ? ? ?原样输出?
占位符:
? ? ? ?占了一个位置,最终输出效果,将输出列表中对应的参数,以占位符指定的格式输出
?? ? ? 占位符与输出列表的匹配 :从左到右逐个对应的?
?? ? ? 如果占位符个数大于输出列表参数个数,多的输出是随机值?
(2)输出表列:
是需要输出的一些数据,可以是表达式。

printf格式字符

2、scanf函数

scanf( 格式控制,地址表列)
“格式控制”的含义同 printf 函数;“地址表列”是由若干个地址组成的表列,可以是变
量的地址,或字符串的首地址。
格式控制:
普通字符:?
? ? ? ?原样输入 //不建议写?
占位符:
? ? ? 占了一个位置,将输入的数据,转换位占位符指定的格式,放到地址列表对应的一块内存空上?
? ? ? 占位符也决定能识别的字符的范围

scanf格式字符

注意:
? ? 1.第二个参数注意一定要写 & (取地址)
?? ? ?Segmentation fault (core dumped) //程序试图访问不能被访问的空间?
?? ?2.多个数据输入时
?? ? ?以空白符作为分割符
?? ? ?空白符
?? ? ?空格?
?? ? ?回车?
?? ? ?tab?
?? ?3.浮点型数据输入时?
?? ? ?double -- %lf
?? ? ?类型要匹配?
?? ? ?int - %d
?? ? ?long - %ld
?? ? ?long long - %lld
?? ?4.辅助控制符?
?? ? ?m ?宽度 -- 输入的宽度?
?? ? ?达到宽度时,输入匹配结束?
?? ? ?只能获取到前m个数据?
?? ??5.scanf匹配结束的条件?
?? ? 123 456 789
? ? ?scanf("%d%d%d",&a,&b,&c);?? ??
? ? ?a.空白符?
?? ? b.指定宽度?
?? ? 123456
?? ? scanf("%3d",&a); //123
? ? ?c.非法字符
? ? ?123a45?? ??
?? ? scanf("%d",&a);
?? ??6. %c 字符占位符?
?? ? ?几乎可以识别键盘输入的任何字符?
?? ? ?scanf("%c %c %c",&c1,&c2,&c3);
文章来源:https://blog.csdn.net/qq_53476859/article/details/135681640
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。