| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 论C/C++中scanf、putchar、gets等输入函数的细微差别 -> 正文阅读 |
|
[C++知识库]论C/C++中scanf、putchar、gets等输入函数的细微差别 |
? 在编程的过程中,我们时常要将输入的值赋给程序。这时候,就需要运用一些函数以实现这一功能。其中,我们最常用的几种函数分别为scanf、putchar,gets。这几种函数的功能类似,但是却略有不同。下面我就来介绍一下这几种函数的异同,以供大家参考。 ? 以单词计数程序为例,在这一程序中,我们要统计单词的数量。在第一个程序块中,我们可以看到,这一程序没有输入,要处理的字符串,也就是“i am an sb”提前放到了数组里。在我们运行程序的时候,我们可以发现,输出为4。这也就意味着,字符串中有4个单词。
显而易见,这一结果是正常的。 ? 可是下面就达到了剧情的高潮啦~ ? 当我要用scanf输入“i am an sb”这一字符串的时候,输出的结果却是1!!正如下图所见。
?在这一段代码中,可以看到,我只插入了一行代码—scanf(“%s”,s);可是输出却截然不同!!! 奇了怪了,真的是奇了怪了。。。。 后来,查询了各种书籍之后,才发现scanf在碰到tab、空格、enter之后就会停止读取输入流!!!也就是说,在我输完i,然后敲了空格之后,scanf就已经停止读取输入流中的字符串,程序继续往下进行啦!!! ? 好了,这一问题已经解决喽~ 接下来,我们再来看一看getchar()这一神奇的函数。 ? 记得我与getchar()初识与《The C Programming Language》(一部由C语言创始人编写的巨作巨作),随后便与之坠入爱河!从此,我便对getchar()爱不释手。 ? ?敢爱就要敢付出,既然是真爱,就要为其付出一定的心血!因此,到后来每当我需要用输入函数的时候,我都会用getchar()! ? 但好景不长,刚开始用,我便遇到了极大的麻烦。 ? 正如图所示,当我要用getchar()读取“i am an sb”的时候,却。。。。没有。。。。任何输出(内心受到了一万点暴击)
可是,当我输入“i am an sb”的时候,却没有任何输出! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 我真心智障了! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?日日夜夜的调试,换来的却是一无所有! ? 但是我不急不躁,认真地查询一下子getchar()的具体用法,发现我getchar()用得应该没有错。之所以没有输出,主要是因为while()循环没跳出去 ? 可是,为什么while循环没有跳出去呢?这是一个问题 ? 后来,我才发现getchar()不会将输入的\n自动转化为'\0',也就是说,while循环永远不会跳出。 ? 所以,getchar()慎用。。 ? ?? ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:24:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |