getchar 详解
2015-10-30 15:57
447 查看
介绍
首先说明概念:stdin: 标准输入,我理解的就是程序运行后,用户打进的一段字符。我不知道准不准确。
getchar被调用后,若stdin为空,将等待用户键入字符,当按下回车键,则getchar 开始从stdin读入字符,并返回对应的ASCII码。
若stdin不为空,调用stdin后将直接从中读取字符,并返回对应ASCII码。
注意:调用一次getchar只读入一个字符。
/*example1*/ int main () { int i ; i = getchar(); j = getchar(); return 0; }
如果我们运行这个程序,那么:
首先执行到
i = getchar();将等待用户输入字符串。
假设输入的是
abcd(回车),那么
abcd(回车)将被自动存入stdin中。然后getchar()读取stdin中的
a,并返回对应ASCII码给i;
此时stdin中变为
bcd(回车)
然后执行到了
j = getchar();,由于stdin还有内容,getchar,将直接读取
b,并返回对应ASCII码给
j.此时stdin中剩下
cd(回车)。
以此类推。直到stdin为空再调用则重复上述步骤。
用途
可以通过循环,分别获取某个符号前的所有字符;/*example2*/ int main () { char c; while ((c = getchar()) != '\n') { printf("%c", c); } }
这段代码的作用是,循环读取所输入字符串并分别输出。
假设输入的是
abcd(回车),那么循环将读取
abcd并输出,此时stdin中剩下
(回车)。然后循环继续进行,读取
(回车),不符合
(c = getchar()) != '\n',跳出循环。此时stdin变为空。程序结束。
读取其他字符前的字符串也可触类旁通。
相关文章推荐
- DS-5教程-ARM DS-5 添加新芯片至DS-5调试设备列表
- POJ2114(树分治)
- fastjson文档解读——上篇
- winform,wpf全屏 还显示任务栏的解决方法
- 缄默者的振臂高呼
- Nim Game
- JQuery UI 精品UI推荐
- springmvc 环境配置图
- JavaWeb 学习
- inspect a function object
- UE4 Asynchronous Asset Loading
- More Effective C++学习笔记(2)
- SQL Server 2008 数据库编程摘要一 : 函数篇
- FMDB下的数据库操作DML语言
- ios7 - 怎么得到七牛返回的 文件和图片的 上传进度
- 录入学生信息
- jquery.validate.js的remote用法
- iOS多线程编程详情(GCD、NSThread、NSOperation)
- android 性能系列
- ionic路由(二)