提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

C语言中有多个输入输出函数,各个输入输出函数可能因为运算方式的不同导致其形成差异,令他们的使用场景不同,我们大多数人可能只会使用他,却不懂他们其中的运算原理,现在就由我来给大家介绍一下各个输入输出函数,使你轻松掌握他们


一、日常见到最多的输入输出函数

1.scanfprintf的使用

A.scanf在我们日常使用中作为输入函数进行使用,在visual stdio中此函数被禁用了,要改成scanf_S或添加这一串句子才能使用:#define _CRT_SECURE_NO_WARNINGS。scanf作为输入时,可以争对各种类型的数据,整形,浮点型,字符都行,此函数读到空格或\n时停止;scanf只拿空格或\n前面的内容,并不会取出\n.

B.printf是最常见的输出函数,基本每个数据都能用printf来输入,没什么特别点,应用广泛,十分全面的一个输出函数

2.getchar和putchar的使用

A.getchar表示字符的输入,每次输入一个字符;会读取\n,其返回的是ASCII码值,即返回的是int类型;与scanf的区别就是其只能输入一个字符,scanf都能输入;

B.putchar表示字符的输出,一般与getchar配合使用,写入时发生整形提升,且该值在内部转换为无符号字符。其库函数如下。

getchar是如何工作的呢?难道是键盘的直接输入,然后读取吗?

其实并不是,在键盘与getchar直接有个区域叫输入缓冲区,这个区域是真实存在的,当你输入a\n时,由于getchar一次只读取一个字符,他只会读取a,如果通过循环输入的话,就会有换行的效果,如下图。

此时输入b之后并不会直接输出,要输入\n,同时他也会给你换行。要停下来你只需按下ctrl z之后再按\n之后就能停下,如下图 。

 C.接下来说一道易错题相信它能让你更加了解getchar和putchar的内部原理及使用。

这我都没有输入T/F就已经判读错误了呢,这就是关于scanf和getchar内部运行原理的问题。

这里你从键盘上输入数据到输入缓冲区,一开始不是要输入密码:123456\n,此时密码在输入缓冲区中,如下图

 此时由于scanf此函数读到空格或\n时停止;scanf只拿空格或\n前面的内容,并不会取出\n.此时123456被取出,输入缓冲区里还有\n,getchar看到输入缓冲区里还有\n,它就直接读取放在ch里面去了,导致没有输入,如下图。

可能现在有人就会说了,只要在前面加个getchar就行,这样不就把那个\n给取出了,不就正常输入了吗?这确实是一种解决方法,此时的确能输出了。

可是要是密码不输入数字呢,就比如123456    abc呢,这样会发生什么情况呢? 你们想的没错,果然失败了,此时就应该要一个循环去处理后面的字符,把他们一个一个取出。

此时就是这个输入密码问题的完美答案了,要给它平方就是100分了,这就完美解决了,相信这能然各位更加了解getchar和scanf函数。

二.输入输出函数的进阶

1.gets和puts的使用

A.gets表示从标准输入(函数)获取字符串,他跟scanf有点类似,不过它是输入读取字符串,同时它读到文件末尾或\n时停止;且只拿\n前面的内容.这一点跟scanf很像。但它也有比scanf好的地方,其输入较为整洁,且遇到空格不会停,也会读取,同时其读取到\n时会把它取出丢弃,并不会把它留在缓冲区,使得后面不用清理\n.

如上面那道题,把scanf改成gets后就不用在消除\n了,这样就简洁了许多。

B.puts将字符串写入标准输出,该函数从指定的地址 (str) 开始复制,直到到达终止空字符 ('\0')。此终止空字符不会复制到流中。其库函数如下

puts在显示字符串时,在末尾会自动补充\n,其仅能输入字符串和putchar一样具有局限性,不如printf使用广泛,这就是其一点小缺陷吧。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了输入输出函数的使用,c语言中还有许多输入输出函数,学无止境,我还有许多不懂的地方,希望可以在这与大家共同进步。

简单讲解c语言中各个输入输出函数使用场景与不同,填补你的知识盲区相关推荐

  1. c语言中的输入输出函数之printf函数

    文章目录 一.前言 二.printf函数 1.printf函数定义 2.格式 格式化字符串 1.字符串常量 2.格式控制字符串 a.类型 b.标志 c.最小宽度 d. .精度 e.类型长度 3.转义字 ...

  2. C语言中的输入输出函数

    ----------------------------- //键盘缓存区(按enter送入)==>输入缓存区 ==>scanf ----------------------------- ...

  3. c语言中调整颜色的函数_C语言中的输入输出函数

    点击上方"学士科技",选择"设为星标" 技术干货第一时间送达! 01 字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putc ...

  4. c语言中用于格式化输出的函数,C语言中格式化输入输出函数(转)

    1.1.1 格式化输入输出函数 一.printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息.在编写程序时经常会用到此函数.printf()函数的调用格 ...

  5. c语言中的输入输出函数之scanf函数

    目录 前言 scanf函数 定义 scanf函数一般形式 地址表列 格式字符串 * 域宽 长度修饰符 格式字符串中存在普通字符 scanf和scanf_s的区别以及vs解决scanf报错的另一种方法 ...

  6. 整理C语言和C++中常用输入输出函数

    1.C语言中的输入与输出 在C语言中我们常用输入函数"scanf"和输出函数"printf",而与之配套的格式符有 程序如下: #include<stdi ...

  7. c语言中赋值的时候顿号的作用,简单总结C语言中的运算符优先级

    简单总结C语言中的运算符优先级 C语言中有很多运算符,除了四则运算,还有位运算.比较运算.逻辑运算.赋值运算等等,令人眼花缭乱的同时,优先级也让人头疼.通常建议在写代码的时候不用省略括号,但是并不是所 ...

  8. c语言主线程退出子线程,简单了解C语言中主线程退出对子线程的影响

    这篇文章主要介绍了简单了解C语言中主线程退出对子线程的影响,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 对于程序来说,如果主进程在子进程还未结束时 ...

  9. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

最新文章

  1. 了解Android中的meta-data及其应用
  2. python对财务人员的帮助-帮公司财务妹子写了个“群发工资条”的Python脚本!
  3. PyCharm中批量查找及替换
  4. 集合到文件改进版【应用】
  5. 利用sshfs+任意本地编辑器编辑远程文件
  6. 2019-06-13 Java学习日记之MySql
  7. mybatisplus 一次性执行多条SQL语句插入(Oracle篇)
  8. 因为安全层不能与远程计算机协商兼容的参数,L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误(转)...
  9. PyTorch 1.0 中文文档:Tensor(张量)的属性
  10. [bzoj] 1257 余数之和sum || 数论
  11. 【java笔记】大数操作(BigIntegerBigDecimal)
  12. 虚拟机android原生系统下载地址,Android x86开源项目最新版虚拟机镜像下载VM/Vbox...
  13. greensock是个很不错的类库,故转载了一些关于其中类使用方法的文章。
  14. 轻松搞定应用启动黑白屏
  15. 错误信息 Error executing DDL via JDBC Statement 解决办法
  16. 单片机中断系统应用实例(两组实验+Proteus仿真+C源程序)
  17. Golang【sgg】
  18. 2019元旦消费大数据
  19. Exchange 2007 被攻击
  20. 直播:Phoenix 全局索引原理与实践

热门文章

  1. 印度史上最大频谱拍卖结束 700/900 MHz频段无人问津
  2. 数据分析的作用有哪些?
  3. 数字图像处理 读书笔记一 绪论
  4. nginx禁止浏览器直接打开webpack打包后的js文件
  5. Ubuntu终端的输入输出
  6. 听六小桨讲AI | 第3期:优化器及其三种形式BGD、SGD以及MBGD
  7. 在C语言上优雅地使用json - CSON原理解析
  8. Maya 2017 outliner大纲视图未过滤出多余的set
  9. 从Java开发者的视角解释JavaScript
  10. 换手机之数据转移方法大全(如何找回手机删除的文件)