2025年c语言输入输出

c语言输入输出c 语言输入输出 1 数据输出 c 语言无 I O 语句 I O 操作由函数实现 include stdio h 1 1 字符输出函数 格式 putchar c 参数 c 为字符常量 变量或表达式 功能 stdio h

大家好,我是讯享网,很高兴认识大家。

c语言输入输出

1. 数据输出

c语言无I/O语句,I/O操作由函数实现:

#include <stdio.h>

1.1 字符输出函数: 

格式:putchar(c)

参数:c为字符常量、变量或表达式

功能:把字符c输出到显示器上

返值:正常,为显示的代码值

#include <stdio.h> int main(int argc,char *argv[]) { int a=65; char ch='B'; putchar(a); putchar('\n'); putchar(ch); return 0; }

讯享网


讯享网

 打开帮助手册,发现putchar里面是int 类型的字符,int里面认为的是ASCII码值,为什么不是char类型的,因为char类型的变量是-128~127范围而ASCII码的是0~255。

1.2 格式输出函数 

格式:printf(“格式控制串”,输出表)

功能:按指定格式向显示器输出数据

输出表:要输出的数据

格式控制串:包含两种信息

格式说明:%【修饰符】格式字符,用于指定输出格式

普通字符:原样输出

格式符

作用

i,d

十进制整数

x,X

十六进制无符号整数

o

八进制

u

无符号十进制整数

c

单一字符

s

字符串

e,E

指数形式浮点小数

f

小数形式浮点小数

g

e和f中较短的一种

%%

百分号本身

讯享网#include <stdio.h> int main(int argc,char *argv[]) { int a=254; char ch='A'; char s[]="adwdada"; float f1=567.12; printf("%d %x %o\n",a,a,a); printf("%c %d\n",ch,ch); printf("%s\n",s); printf("%f %e %g\n",f1,f1,f1); return 0; }

附加格式说明符:

修饰符

功能

m

输出数据域宽,数据长度

.n

对实数,指定小数点后位数(四舍五入)

对字符串。指定实际输出位数

-

输出数据在域内左对齐(缺省右对齐)

+

指定在有符号数的正数前显示正号(+)

0

输出数据时指定左面不使用的空位置自动填0

#

在八进制和十六进制前显示前导0,0x

|

在d,o,x,u前,指定输出精度为long型

在e,f,g前,指定输出精度为double

#include <stdio.h> int main(int argc,char *argv[]) { int a=254; float f1=12.3456; char ch='a'; char s[]="Hello,World!"; printf("%15s\n%15.5s\n%2.5s\n%.5s\n",s,s,s,s); printf("%8d\n%2d\n",a,a); printf("%9f\n%9.3f\n%.2f\n",f1,f1,f1); printf("ch=%5c\n",ch); printf("%08d\n%0+8d\n",a,a); return 0; }

1.3 字符串输出函数puts

格式:int puts(const char*s)

功能:向显示器输出字符串(输出完,换行)

说明:字符数组必须以‘\0’结束

讯享网#include <stdio.h> int main(int argc,char *argv[]) { char s[5]; gets(s); printf("s:%s",s); printf("\n"); puts("$$$$"); puts(s); return 0; }

数组在后面会有讲解 ,也可以自己先在网上查一下定义

 

2. 数据输入

2.1字符输入函数getchar:

格式:getchar()

功能:从键盘读一字符

返值:正常,返回读取的代码值;出错或结束键盘输入,返回(Ctrl+d)。

注意: 输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇非法输入 遇宽度结束

#include <stdio.h> int main(int argc,char *argv[]) { int ch; printf(">"); ch=getchar(); putchar(ch); putchar('\n'); return 0; }

2.2格式输出函数: 

格式:scanf(“格式控制串”,地址表)

功能:按指定格式从键盘读入数据,存入地址表指定

存储单元中,并按回车键结束

返值:正常,返回输入数据个数

地址表:变量的地址,常用取地址运算符&

格式符

作用

i,d

十进制整数

x,X

十六进制无符号整数

o

八进制

u

无符号十进制整数

c

单一字符

s

字符串

e

指数形式浮点小数

f

小数形式浮点小数

讯享网#include <stdio.h> int main(int argc,char *argv[]) { int a; printf("请输入:"); scanf("%x",&a); printf("%d\n",a); return 0; }

注意这里我输入的是十六进制的数,输出的是十进制的数,不懂的可以看看之前的文章怎么转换或者在网上搜 

scanf函数支持的格式说明符可以带以下修饰符

修饰符

功能

h

用于d,o,x前,指定输出为short型整数

l

用于d,o,x前,指定输出为long型整数

用于e,f前,指定输出为double型整数

m

指定输入数宽度,遇空格或不可转换字符结束

*

抑制符,指定指定输入项读入后不赋给变量

#include <stdio.h> int main(int argc,char *argv[]) { int a,b,c; scanf("%4d%2d%2d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c); scanf("%4d%*2d%2d",&a,&c); printf("%d,%d\n",a,c); return 0; }

抑制符可以理解为你输入的值被吞掉了。 

用“%c”格式符时,空格和转义符作为有效字符输入

讯享网#include <stdio.h> int main(int argc,char *argv[]) { char a,b,c; scanf("%c%c%c",&a,&b,&c); printf("%d,%d,%d\n",a,b,c); return 0; }

总结,输入数据时,遇到以下情况认为该数据结束:

遇空格,Tab键,回车键

遇到非法输入

遇到宽度结束

2.3 输入函数的“垃圾”

 为什么只输出了一个值,但是最后ch也有值,这是因为当输入5之后,按下回车键本意是按下回车键结束输入,但是这个回车键被当成了字符输入值。这个就叫输入函数的“垃圾”。

解决方法:加入getchar();

解决方法:用格式串中空格或“%*c”来“吃掉”

 

#include <stdio.h> int main(int argc, const char *argv[]) { char a; char b; char c; //回收垃圾方式的三种方式 //方法1:空格、若干空格、tab、\n #if 0 scanf("%c %c %c", &a, &b, &c); #endif //方法2:%*c 回收任何一个字符, tab 键 ,空格键,\n #if 0 //%*c 回收任何一个字符, tab 键 ,空格键,\n scanf("%c%*c%c", &a, &b); #endif //方法3:getchar()回收 #if 0 scanf("%c", &a); getchar(); //吃一个字符 scanf("%c", &b); #endif printf("a=%c b=%c c=%c\n", a, b, c); return 0; }

注意:在第一种方法中,scanf中的格式控制串中你可以插入几个空格或者一个空格隔开,当输入数据时你不管数据之间空了几个都算做一个。

 2.4字符串输入函数gets

格式:char*gets(char*s)

功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’

说明1:输入串长度应小于字符数组维数

说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束标志。

讯享网#include <stdio.h> int main(int argc,char *argv[]) { char s[5]; gets(s); printf("%s\n",s); return 0; }

注意:因为数组的大小限制(数组会在后面有讲解,也可以自行在网上了解定义)如果输出超过了四个字符,就不行。(初学者,如果有错误欢迎各位指正,一起学习一起进步)

小讯
上一篇 2025-01-04 16:28
下一篇 2025-01-07 16:19

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/13441.html