自学嵌入式第四天C语言篇3

一、C语言中常用的命名方法 

  • 驼峰命名法:驼峰命名法有大驼峰和小驼峰之分,大驼峰命名是将首字母大写连在一起的单词的首字母也大写,如FirstNum,小驼峰命名法只是第一个单词的字母不用大写,如firstNum。
  • 内核命名法:将单词与单词之间用下划线连接,如first_num。
  • 注意:命名时应养成良好习惯,尽量不用拼音,多用单词;编写代码时应只选择一种命名方式,不要混用;命名时应该做到见名知义,提高代码的可读性。

二、输入输出

  • 输入输出的定义如下:

        举个例子,计算机从键盘获取一个输入,按下键盘,数据会进入到计算机的内存里面,外部设备将数据送入内存,这个过程叫输入;而从内存中发送给显示器显示,内存中的数据发送给外部设备,此过程叫输出 。

  • 实现该功能的方法:C语言本身是不提供输入输出这个功能,输入输出操作由C语言的标准输入输出库中的函数来实现,也就是C语言刚入门时写的<stdio.h>。stdio全称是Standard Input&Output,h是head的意思,里面包含了用来完成输入输出的函数,完成该项操作的时候只需调用相应的函数即可。

完成输入输出的函数:

输入输出函数
getchar        //输入字符putchar        //输出字符
gets        //输入字符串puts        //输出字符串
scanf        //格式输入printf        //格式输出

        今天主要学习了getchar、putchar、scanf、printf这四个输入输出函数

getchar

  1. 函数原型:int getchar(void);
  2. 功能:从键盘上获取一个字符。
  3. 参数:void表示在调用函数时不用传入参数。
  4. 返回值:表示获取到的字符的ASCII码值。

 putchar

  1. 函数原型:int putchar(int c);
  2. 功能:输出一个字符。
  3. 参数:传入一个int类型的数,其实就是你要输出那个字符的ASCII码值,一般直接写成       '输出的字符'
  4. 返回值:如果输出字符成功,那么将返回那个字符的ASCII码值,如果失败了,就返回-1。

printf

        printf这个函数的格式是printf("格式控制字符串",输出参数列表); 

        学会这个函数重点在于格式控制字符串,该字符串中,分两种字符,一为普通字符,它们被原样打印出来,二位占位符,占位符就是为了匹配后面的输出参数,以下是占位符的介绍

 

        同时,为了打印输出的效果更好,还可以在%和字符间加上辅助控制符,如%#x,#为辅助控制符,以下是辅助控制符的详解

 

        辅助控制符可以搭配使用,以达到更好的打印输出的结果 

        补充说明:printf这个函数也有返回值,它的返回值就是打印输出的字符的个数

 scanf

        scanf的函数原型为int scanf(const char *format, ...);其格式为scanf("格式控制字符串",地址列表); 

        scanf中的格式控制字符串和printf中的通用,只是表达的意思不同,printf是将要输出的数据按照规定的格式输出,而scanf是将输入的数据转成规定的格式,辅助控制字符也可以在scanf中使用,但是在使用l,ll,h,hh时要做到精确的匹配。

        同时也要注意以下细节,scanf的格式控制字符串中最好不要写普通字符,因为对于普通字符要求原样输入,对于不了解的使用者做不到原样输入;其次,地址列表中的地址一定要是有效且确定的;同样要注意scanf输入结束的时间点。

        对于多类型输入来说,匹配到该类型无法识别的字符时,当前scanf则匹配结束了;遇到空白符(空格、回车、tab)时,匹配结束,但是字符类型的输入特殊,因为空格也是一个字符。

        所以一般我们再写scanf时,可以考虑将格式控制字符串中的占位符一个一个用空格隔开,因为只要scanf中出现一个空格,它可以匹配任意个数的空白符,当然也可以用%*c跳过一个空格或者用getchar读走缓冲区中的空白符,防止%c跟空白符匹配上,导致数据出错。

        scanf也是有返回值的,它返回匹配类型正确的个数,可以用这个返回值来判断用户是否输入了正确类型的数据。

三、输入输出函数的原理 

        我们在键盘上按下键盘的时候,其实是将输入的数据发送到了缓冲区,按下回车键,将'\n'字符也送到了缓冲区,这个时候输入函数开始读取缓冲取的内容,如果正确匹配上输入的要求,该数据从缓冲区被读走了,如果没有正确匹配,这个值会一值留在缓冲区,这个时候若要清空缓冲区,则可以考虑用getchar函数依次读走缓冲区的内容    

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值