D9.输入输出/专题

\n换行

9.1 字符输出函数putchar

1.输入输出(一)

(1)数据输出

  • C语言无I/O语句,I/O操作由函数实现 

                #include <stdio.h>

  • 字符输出函数

                格式:putchar(c)

                参数:c为字符常量、变量或表达式(要输出的内容)

                功能:把字符c输出到显示器上(输出一个字符)

                返回值:正常为显示的代码值(正常所输出的字符的ASCII值)

例子:

#include <stdio.h>

main()

{   int c;

    char a;

    c=65;a='B'

    putchar(c);purchar('\n');putchar(a)  //(c)整形变量('\n')字符常量  (a)字符型变量

}

运算结果为:A

                      B

int purchar(int c)    //参数类型是Int代表输出的字符   int认为是它的ASCII码值

9.2 格式输出函数

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

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

        输出表:要输出的数据

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

                (1)格式说明:%[修饰符]格式字符,用于指定输出格式

                (2) 普通字符:原样输出      

%d整型  

%c字符型

1. 格式字符

打印整型数用%d %o %x都可以  unsinged int可以用%u

  • 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  (字符型变量)

%s字符串输出   'A'字符型输出 输出字符%c 如输出ASCII值是用%d变量

浮点型数据输出 小数形式%f  科学计数法形式或指数形式%e  选一个最简洁的%g

printf("%%")  //%  (是打印一个百分号)

9.3 printf的附加说明符的使用

1.附加格式说明符

 2.输出函数格式字符

  

 8是m输出数据的宽度 (比如变量里存的整数就是10打印到屏幕上就是两位10  如果写一个8d就是希望输出凑够8位 所以左补空格  {使得屏幕输出比较整齐 经常用来调格式})

a是1234 8d就是左面补四个空格  2d是显示两位但是a位1234不合理 m就原样输出(数据长度>=m就原样输出 2就不起作用了)

所以第一个printf输出  //    1234,1234

 8.1 m.n  (n是小数点后面的位数   默认保留六个小数位)

例 static char a[]="Hello,world!"

    printf("%s\n%15s\n%10.5s\n52.5s\n%.3s\n" ,a,a,a,a,a)

  运行结果:Hello,world!

                Hello,world!

                Hello

           Hello

           Hel

对于一个字符串来说%s原样输出  15s不够的地方前面补空格    

10.5s是整体有10个实际字符只有五个(之前是保留五个小数位,现在是保留五个字母

 3.格式输出函数

 

 9.4字符输入函数getchar

1.输入输出(二)

(1)字符输入函数

字符输入函数getchar

  • 格式:getchar()
  • 功能:从键盘读入一字符
  • 返值:正常,返回读取的代码值;出错或结束键盘输入,返回-1(用户按ctrl d 就是结束输入函数返回-1)

 

9.5格式输入函数scanf

1.格式输入函数

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

  • 功能:按指定格式从键盘读入数据,存入地址表  指定
  • 存储单元中,并按回车键结束
  • 返值:正常,返回输入数据个数
  • 地址表:变量的地址,常用取地址运算符&

目前,scanf支持的格式字符很多,如下

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

类似的float是f  double是lf

 

 

 说明:

用“%c”格式符时(字符型变量连续输入),空格和转义字符作为有效字符输入

例子,

scanf("%c%c%c",&c1,&c2,&c3);

若输入a b c

则c1位a,c2位空格,c3位b  (因为空格在ASCII里面有是32)(当字符型数据输入时空格等是有效字符)

总结:

输入数据时,遇到以下情况认为该数据结束(都是分隔符):(针对整型数据)

  • 遇空格、TAB、或回车
  • 遇非法输入
  • 遇宽度结束

例子,

  • ret=scanf("%d%c%f",&a,&b,&c);
  • 若输入1234a123o.26
  • 则a为1234,b为'a',c为123

9.6输入函数的垃圾处理

1.输入输出(三)

(1)输入函数留下的“垃圾”

使用输入函数可能会留下垃圾

int x;

char ch;

scanf("%d",&x);

scanf("%c",&ch);

printf("x=%d,ch=%d\n",x,ch);

%d对应5 冒号之后换行了 换行后又接了冒号10(是因为输入5后 按了回车 回车就被x接收了 回车的ASCII就是10)

垃圾符号产生原因:当输入整型数接下来又要输入字符型的数  输入整型后回车 那个回车一定会被字符型语句的这句话接收  所以通过一个方式把输完数据的回车取出来

(2)清除垃圾的方法

方法1.用getchar()清除   (getchar的作用是从键盘上读入一个字符)

int x;

char ch;

scanf("%d",&x);

getchar();

ch=getchar();

printf("x=%d,ch=%d\n",x,ch);

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

int x;

char ch;

scanf("%d",&x)

scanf(" %c",&ch);或scanf("%*c%c",&ch);

9.7字符串的输入输出

1.字符串输入函数

(1)字符串输入函数gets

  • 格式:char * gets(char *s)
  • 功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加'\0'
  • 说明1:输入串长度应小于字符数组维数(如是5最多输4个)
  • 说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志。

(scanf在处理字符串的时候%s  空格结束 但scanf在处理字符型变量的时候联系写%c这个可以处理空格)

    如果程序想存一个字符串,通常用字符数组,字符数组通过字符串的输入函数,可以输入一系列字符进行赋值,而数组里也可以存一系列的内容

    这个函数是危险的因为不能输入很多,输入很多后就会出现栈溢出错误,因为这种局部变量是放在栈上的(有变量自动分配自动回收的空间叫栈)

    如[5]最多存4个,因为字符串里默认有一个字符作为结束标志的是'\0'

(2) 字符串输出函数

字符串输出函数puts

  • 格式:int puts(const char*s)   (puts的参数就是要输出的内容)
  • 功能:向显示器输出字符串(输出完,自动换行
  • 说明:字符数组必须以'\0'结束

 

sqrt函数是开根号 用sqrt需要加个头文件#include <math.h>  最后gcc a.c 加一个-lm相当于链接选项

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值