学习嵌入式的第四天----输入输出

前言:昨天学习了c语言的运算符和表达式以及数据类型,今天将学习新的内容:输入输出,将输入与输出分为三个板块,简单学习它的概念与功能,重点学习四个函数(getchar,putchar,printf,scanf),了解四个函数的功能、返回值、函数的使用、占位符以及辅助控制符。

一、输入输出

  1. 概念:输入----->计算机------>输出

--------------------------------------------分隔符---------------------------------------------------------------------------

  1. 功能:
  • c语言本身并不提供输入输出功能,使用的是c语言函数库中的”标准输入输出函数”
  • c语言函数库提供了输入输出函数
  1. getchar/putchar---------操作一个字符
  2. gets/puts-----------------操作一个字符串
  3. scanf/printf--------------格式化的函数
  • 需要加上<stiod.h>头文件

--------------------------------------------分隔符---------------------------------------------------------------------------

  1. 函数
  1. getchar
  • 功能:从键盘获取一个字符
  • 函数原型:int  getchar  (void)

注:void表示为空

  • 返回值:表示获取到的字符的ASCII码值
  • eg:  int  ret;

         ret=getchar(); -------表示获取到getchar读取的字符的ASCII码值

  • 练习:从键盘输入数字字符,将数字字符转换为数值输出’1’--->1

 

从键盘输入小写英文字母,并将小写英文字母转换为大写英文字母

--------------------------------------------分隔符---------------------------------------------------------------------------

  1. putchar
  • 功能:输出一个字符
  • 函数原型: int  putchar  (int  c);

注:@ c-------表示要输出的字符

  • 返回值

成功---------输出了的字符的ASCII码值

失败---------1

  • eg: putchar(‘a’);
  • 练习

从键盘输入hello转换为大写形式

--------------------------------------------分隔符---------------------------------------------------------------------------

  1. printf-------格式化输出函数
  •  printf  (“格式控制字符串”, 输出参数列表);

eg: printf(      “a=%d\n”  ,    10);

普通字符:原样输出

占位符:匹配后面的输出参数

  • 函数原型: int  printf  (const  char  *formation ,  ...  );
  • 占位符
  1. 整型
  1. % d转换为有符号的十进制形式
  2. % u转换为无符号的十进制形式
  3. % o转换为八进制形式
  4. % x转换为十六进制形式
  5. % X转换为十六进制形式(a,b,c,d,e,f以大写形式输出, 0x中‘x’也会是大写)

  1. 浮点型
  1. %f转换为十进制形式的小数,输出时默认保留6位小数,不足位补0
  2. %e转换为科学计数法的形式
  3. %E转换为科学计数法的形式,指数形式的e变大写
  4. %g以一种更简洁的形式输出,同时不会输出无意义的0

  1. 字符型
  1. %c转换为字符形式输出
  2. %s转换为字符串形式输出

  • %【辅助控制符】d

%#x ; %#o   ————打印出八进制或十六进制的前缀

% m d;  ————————表示要输出的数据的宽度,如果数据本身的宽度>m,此时按照实际宽度输出;如果数据本身的宽度<m,此时按照m的宽度输出,默认右对齐

%-md;————————按指定宽度输出,负号表示左对齐

%0md;————————多出来的位置可以填充0

%.2f——————表示保留2位小数

%.2e——————表示科学计数法保留2位小数

%s——————表示保留前n个字符

  • 练习:

设a,b为int型变量,

x,y为float型变量,

c1,c2为char型变量,

且设a=5,b=10,x=3.5,y=10.8,c1=’A’,c2=’B’。

为了得到以下的输出格式和结果,

请写出对应的printf语句。

(1)a = 5, b = 10, x + y = 14.3

(2)x - y = -7.3, a - b = -5

(3)c1 = ’A’ or 65(ASCII) c2 = ’B’ or 66(ASCII)

--------------------------------------------分隔符---------------------------------------------------------------------------

(4).scanf-----格式化输入函数

  • scanf(“格式控制字符串”,地址列表)

eg:Scanf(“a=%d”);

普通字符--------原样输入

占位符-----------将从键盘输入的数据转换成指定的格式

  • 地址列表

eg: int  a;

scanf(“a=%d”,&a);

  • 辅助控制符
  1. % m d------数据宽度----输入宽度
  2. 输入的时候,要做到精确匹配

%f-----float             %ld--------long

%lf----double           %lld--------long long

%Lf-----long double

  • 注意事项:
  1. Scanf格式控制字符串中尽量不出现普通字符,一般只写占位符
  2. Scanf的地址列表,一定要是有效地址
  3. Scanf输入结束的条件(匹配结束的条件)
  1. 遇到非法字符,匹配结束
  2. 遇到空白符,匹配结束(空白符:空格,回车,tab)
  3. 超过指定的宽度,匹配结束
  1. Scanf的格式控制字符串中,如果出现空白符,表示匹配任意多个空白符
  2. %*c表示匹配一个数据项,但是并不是把这个数据给任何一个变量中
  • 练习:

编写程序从终端输入数据给到变量,

   并打印变量的值

   a = 3 b = 5 x = 8.5

   y = 71.82 c1= 'A' c2 = 'a'

 

--------------------------------------------分隔符---------------------------------------------------------------------------

 

扩展学习:

  • sqrt(); ------求根号

需要加上头文件#include<math.h>,在编译时需要链接,在后面加上lm,l---表示链接,m------表示math函数库

  • 清楚缓存区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值