C语言的基本的输入输出

  • printf()函数 在头文件stdio.h中
  • scanf()函数 在头文件stdio.h中

printf()函数 在头文件stdio.h中

printf()函数是格式化输出函数,一般用于向标准输出设备按照规定格式输出信息。
printf()函数的格式为:
printf("<格式化字符串>",<参量表>);
printf()函数的另一种函数格式为:
int printf(const char *format, 参量表) 函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。
其中格式化字符串包括两部分的内容:
(1)一部分是正常的字符,这些字符将按照原样输出。
(2) 另一部分是格式化字符,以"%"号开始,后面跟一个或几个格式参数,用来确定 输出内容的格式。
参量表:
参量表是需要输出的一系列参数,其个数必须与前面的格式化字符串中的格式参数个数一样多
,参量表里的各参数用 " , "符号分开,且参量表里的顺序与前面的格式化参数一 一对应。否则
会出现一些意想不到的错误。
printf函数对参量表中各量求值的顺序是自右至左进行的。
但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右,
printf()函数的返回值为实际控制输出的字符数
例:
可以看出第一个printf()它输出了100,总共3个字符,返回值为3。

可以看出第一个printf()的返回值为4,这是因为输出的有100还有\n总共4个字符所以返回值为4.

输出了两个空格加100加\n总共6个字符。
下面举一下printf()输出的例子:

hello+空格是正常的字符按原样输出,后面的按照格式参数控制输出。
例:

分析一下:输出语句从内到外依次输出,345先输出,345是三个字符,所以输出3,3是一个字符输出1。

scanf()函数 在头文件stdio.h中

scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。
scanf()函数的格式为:
scanf("<格式化字符串>",<地址表>);
scanf()函数的另一种函数格式为:
int scanf(const char *format, <地址表>) ;函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。
其中格式化字符串包括三部分的内容:
(1)格式说明符:格式化说明符与printf()函数中的格式说明符基本相同。
(2) 空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
(3) 非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

注意: 地址表是需要读入的所有变量的地址,而不是变量本身。
如果是一般的变量,通常要在变量前加上一个" & “(取地址符);但输出时是变量名。
如果是数组,用数组名就代表了该数组的首地址。
如果是指针,直接用指针名本身,不要加” * "。

返回值: scanf()的返回值是成功匹配并赋值的输入项个数。如果读入数据时遇到了“文件结束”则返回EOF(-1)。

例子:


赋值了两个返回值为2。

可以看出:空格自动剔除掉了(这里的空格被剔除是因为格式不是字符,如果是字符就是另一种情况),“ ,”非空白字符在输入时是必须按照格式化字符串的格式输入,它也被剔除了。

这里输出为这样是因为,把1给a,空格给b,2给了c。
在输入字符数据时。若格式控制串中无非格式字符,则认为所有输入的总符号均为有效符。

这里输出这个是因为:把1给a,空格因为格式控制字符串里有剔除了,把2给b,这时候会有疑问,接下来有好几个空格
就算一个被剔除了还有好几个可以给c,为啥是把3给呢?,这是因为scanf()再剔除空格时如果是连续的一并剔除了直到
是非空格赋值。
如果在格式控制中加入空格作为间隔,则输入时各数据之间可加空格。
下面举一个比较重要的例子:

运行该程序,输入一个字符’ 1 ‘后回车(要完成输入必须回车),在执行scanf("%c",&a); 时’1’赋值给了a
但是回车符(\n)仍然留在缓冲区内,执行语句scanf("%c",&b);时,回车符(\n)赋值给了b。
要解决有两种方法:
(1)
将两个scanf()语句合并到一块。 例:scanf("%c%c",&a,&b);
(2)
可以加一个清除缓冲区的函数fflush(stdin)。
或:自己写一个
while(c=getchar()!=’\n’)
解释:最后一次的字符 ’ \n '导致循环不满足,退出循环了,但这时getchar()已经执行了,也就是说,最后一个字符 ’ \n ’
也读到了,那这一行的剩余字符就都读掉了,所以这样做也可以消除缓冲区中的剩余字符。

C语言中,scanf("%d", &a),在设计这个语法结构时为什么要有地址符&,没有行不行?
答:
scanf是要把输入的东西赋给参数,但是c语言是值传递,这样函数内部的a和你传给它的a
不是同一个变量,达不到赋值的目的。所以要取地址来操作这样才能改变a的值。

C语言的基本的输入输出相关推荐

  1. C语言笔记:格式化输入输出(fprintf、fscanf、sscanf...)

    C语言笔记:格式化输入输出(fprintf.fscanf.sscanf-) 包含以下函数的基本库:stdlib.h fprintf int fprintf(FILE *stream, const ch ...

  2. c语言 结构体的输入输出_C语言的控制结构和输入输出

    c语言 结构体的输入输出 Control Structure in C defines how the statements in the program are going to execute. ...

  3. c语言ATM机文件储存账号密码,C语言ATM(有文件输入输出).doc

    C语言ATM(有文件输入输出) #include "stdio.h" #include "stdlib.h" #include "conio.h&qu ...

  4. c语言怎么清空标准输入缓冲区,C语言中如何清空输入输出缓冲区

    C语言中如何清空输入输出缓冲区 答案:5  信息版本:手机版 解决时间 2019-10-06 09:40 已解决 2019-10-05 13:54 C语言中如何清空输入输出缓冲区 最佳答案 2019- ...

  5. C语言——对文件的输入输出

    1 什么是文件? 1.1 程序文件.包括源文件(后缀为.c),目标文件(后缀为.obj),可执行文件(后缀为.exe)等.这种文件的内容是程序代码 1.2 数据文件.文件的内容不是程序,而是供程序运行 ...

  6. C/C++语言重要语法之输入输出

    点击上方蓝字关注我,了解更多咨询 C++语言是一种编译式的.通用的.大小写敏感的编程语言,完全支持面向对象开发. 基本的输入输出 cin和cout 在C语言中,标准的键盘输入和屏幕输出功能分别使用sc ...

  7. c语言浮点数能用八进制输出不,深析C语言浮点型数据的输入输出

    方星星 吕永强 摘  要 C语言的基本数据类型分为:整型.字符型和浮点型,大多C语言教材都概括了整型和字符型数据的编码及输入输出,但并未详细介绍浮点型数据的编码及输入输出,这导致很多学生不能灵活运用这 ...

  8. C语言:运算符-符号常量-输入输出

    文章目录 运算符 运算符和表达式 算术运算符和算术表达式 复合赋值运算符和复合赋值表达式 自增自减运算符 符号常量 宏常量与宏替换 逗号表达式 标准输入输出函数 字符输入输出 字符常量 单个字符输入输 ...

  9. C语言编程入门—基本输入输出(week1)

    希望这篇文章可以帮助到大家~ 问题 A: [C语言1][实验1][实验内容][2]李四的邮箱 题目描述 编写一个程序,用一个printf()语句,输出某人的姓名和email地址,中间用2个空格分隔.程 ...

最新文章

  1. 浅谈Laravel中的设计模式(四) Contract 契约模式
  2. 注入域对象而不是基础结构组件
  3. 有道精品课数据中台建设实践
  4. 工资微软微软员工你了解么??
  5. ThreadLocal 原理和使用场景分析
  6. perl Data::Dumper和Storable的例子
  7. SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
  8. javascript数据类型,对象,继承及原型链
  9. TortoiseGit设置代理问题
  10. JZOJ3238. 超空间旅行
  11. 计算机语言真假的意思,c语言中1和0是真假的意思吗
  12. java在图片上写字
  13. 【附源码】计算机毕业设计java智慧停车系统设计与实现
  14. 【Java基础系列教程】第十四章 Java 包装类、日期与日期格式化类、数值格式化等常用类详解
  15. 国家商用密码(2)基于SM2的软件授权码生成及校验
  16. vue封装打印插件print.js实现打印组件功能
  17. 建立时间裕量和保持时间裕量
  18. 戴尔电脑遭香港高校联合抵制
  19. python图片字符分割_图像分割python
  20. python实现计算圆的周长和面积

热门文章

  1. 码云Pages搭建个人静态网站之旅
  2. 如何做一碗完美的葱油拌面?
  3. E:Infallibly Crack Perplexing Cryptarithm
  4. MATLAB算法实战应用案例精讲-【数模应用】装箱问题(应用案例)
  5. 百度“份量十足”,字节包容多样 |新年礼盒大赏时刻(附抽奖)
  6. 计算机老师年终考核个人工作总结,年终总结:计算机教师个人年终总结
  7. Retrofit get请求参数
  8. UNION ALL、左右外连接、全外连接、内连接
  9. 惠普HP LaserJet 4200n 打印机驱动
  10. shell开启飞行模式_提醒丨用了这么多年手机才知道,飞行模式还藏着这6个功能...