9.物联网学习之输入输出总结

输入输出

1.字符输出函数的用法

        putchar(‘A’); 输出字符A

        putchar('\n'); 输出换行

        char a=’B’; putchar(a); 输出字符B

2.格式输出函数的用法

 2.1pringf(“Hello world!”); //原样输出

        printf(“%%”); //输出%

2.2pringf(“%[修饰符]格式符”,a); //输出指定格式

<格式符>

   例如:

        int a=567;printf ( “%d”,a); //十进制567

        int a=255;printf(“%x”,a); //十六进制ff

        int a=65;printf(“%o”,a); //八进制101

        int a=567;printf(“%u”,a); //无符号数十进制567

        char a=65;printf(“%c”,a); //单字符A

        printf(“%s”,“ABC”); //字符串ABC

        float a=567.789;printf(“%e”,a); //科学计数法5.677890e+02

        float a=567.789;printf(“%f”,a); //浮点数567.789000

        float a=567.789;printf(“%g”,a); //自动选择科学计数法与浮点数长度短的一个 567.789

<修饰符>

        int a=1234;printf(“%8d,%2d\n”,a,a);

 //第一个四个空格1234,第二个长度不够所以不变1234

        float f=123.456;printf(“%f,%8f,%8.1f,%.2f\n”,f,f,f,f);

 //第一个原样输出

//第二个保留八位有效数123.456001

(但是运行后展示9位,原因近似存储, 8表示输出字段的最小宽度为8个字符,这意味着如果实际的输出长度小于8,将会在左侧填充空格以达到总宽度;)

//第三个八位并保留一位小数 000123.5(0为空格,展示八位,点算一位,之后补全8个)

        char ch=‘a’;printf(“%3c\n”,ch);

//00a(零表示空格)

        char a[]=“Hello,world!”

        printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);

//a.c: a表示共占多少位,c表示从左到右截取多少位

//第一个Hello,world!

//第二个000Hello,world!

//第三个00000Hello

//第四个Hello

//第五个Hel

补充:上述float f=123.456;printf(“%f,%8f,%8.1f,%.2f\n”,f,f,f,f);

print替换为printf(“%0f,%08f,%08.1f,%.02f\n”,f,f,f,f); 那么输出时候0来补充(不是空格补充)


3.字符输入函数的用法

         int c; c=getchar(); printf("%c--%d\n", c, c);

注意:(1)int c;原因:char类型范围太窄

(2)正常,返回读取的代码值;出错或结束键盘输入,返回-1 (ctrl   d)

4.格式输入函数的用法

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

<格式控制串>

例子:

        (1)scanf(“%4d%2d%2d”,&yy,&mm,&dd);

若输入19991015

则yy为1999, mm为10, dd为15

        (2) scanf(“%2d%*3d%2d”,&a,&b);

若输入1234567

则a为12,b为67

注意:(%*3d)这样就会忽略中间的数

        (3)ret=scanf(“%d%c%f”,&a,&b,&c);

若输入1234a123o.26

则a为1234, b为‘a’, c为123

注意:自动分离数据

        (4)scanf(“%c%c%c”,&c1,&c2,&c3);

若输入a

<回车>bc   

则c1为a, c2为回车, c3为b

注意:空格会被当作字符,在数字的时候空格是分隔符

(解决4)忽略空格,即不接受空格回车作为字符

方法一:

        scanf(“%d”,&x);

        getchar(); //中间接收一下回车

        ch=getchar();

方法二:

        scanf(“%d”,&x);

        scanf(“  %c”,&ch); //加上空格即可忽略回车

方法三:

        scanf(“%d”,&x);

        scanf(“%*c%c”,&ch); //%*c忽略回车

        这个*c应该是忽略中间的所有字符,只剩下最后一个

方法四:

        scanf(“%d”,&x);

        fflush(stdin); //清除缓存区  现在淘汰了不用了

        scanf(“%d”,&y);

清理缓存的非数字:while (getchar() != '\n');


字符串输入输出

  1. 字符串输入函数

格式: char * gets(char  *s)

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

注意:不要溢出,gets不以空格作字符串结束标志,以回车<scanf以回车空格作结束>

        gets(string);

        printf(“%s\n”, string);

  1. 字符串输出函数

格式:int puts(const char *s)

注意:字符数组必须以’\0’结束

        char string[80] = “How are you”;

        puts(string);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值