getchar()和EOF

简介:

(c=getchar())!=E0F

  这个式子很熟悉,但一直都没有去理解它的原理。所以今天在网上一顿搜索,基本理解了这些问题。

1.getchar()函数:

  这个函数是以行为单位进行存储的。停止的条件是接收到回车'\n'和结束符EOF。它的返回值有正负数,当有输入时候一般返回正直,除非遇到停止的消息时候,才会返回-1,即EOF;

    while((c = getchar()) != EOF){
putchar(c);}

  在这里,getchar和putchar应该每次读入和输出一个字符,但是在终端上我们却发现情况并非如此,而是等待输入一行完成时才有输出。造成这种情况的原因是由于输入在停止前,操作系统的驱动不会通知getchar函数,控制权一直在getchar函数上,getchar函数这时处于阻塞状态,直到停止符出现,控制权才会交给putchar函数,完成输出。 

2.EOF

  EOF作为换行符,可以通知输入ctl+D来实现EOF的输入。在getchar函数中,通过这种操作可以结束它的阻塞。

  

  

知识共享许可协议
本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:cococo点点 http://www.cnblogs.com/coder2012


相关文章
|
4月前
|
存储 并行计算 算法
【图像压缩】在 MATLAB 中使用奇异值分解 (SVD) 进行图像压缩(Matlab代码实现)
【图像压缩】在 MATLAB 中使用奇异值分解 (SVD) 进行图像压缩(Matlab代码实现)
339 3
|
自然语言处理 Windows
Internet Download Manager (简称IDM)2023绿色下载器介绍
Internet Download Manager是一款拥有续传功能的下载软件,多线程下载,提升你的下载速度最多达5倍。续传功能可以让因为网络问题、计算机死机甚至无预警的停电导致只能下载到一半的软件继续下载,与浏览器搭配使用有着非常舒适的下载体验。
1628 1
|
9月前
|
人工智能 供应链 大数据
阿里云联合艾瑞发布【企业数字化人才发展白皮书】
阿里云联合艾瑞发布【企业数字化人才发展白皮书】
|
9月前
|
人工智能 自然语言处理 算法
《解锁鸿蒙AI开发:探秘必备集成开发环境》
在鸿蒙系统与人工智能融合的创新浪潮中,选择合适的开发工具至关重要。DevEco Studio作为华为官方的全能开发利器,基于IntelliJ IDEA,提供丰富的项目模板、智能代码补全和强大的调试优化功能,助力开发者高效完成应用开发。DevEco CodeGenie通过AI赋能,以智能知识问答和代码生成功能显著提升开发效率,减少重复性工作。而Visual Studio Code凭借其轻量灵活的特点和丰富的插件生态,为鸿蒙开发提供了更多选择。三者各具优势,开发者可根据需求选择最适合的工具,共同推动鸿蒙生态的繁荣发展。
396 0
|
前端开发 JavaScript Android开发
跨平台应用程序
跨平台应用程序
274 2
|
传感器 人工智能 自动驾驶
未来出行:无人驾驶汽车的技术革新与挑战
本文深入探讨了无人驾驶汽车背后的技术原理,包括感知、定位、决策和执行四个核心系统。同时,文章分析了当前自动驾驶技术的发展现状,并指出了技术标准不统一、基础设施不完善和法律法规滞后等主要挑战。最后,展望了无人驾驶汽车未来的发展趋势,强调了跨学科合作和政策支持的重要性。
618 4
|
安全 网络协议 5G
|
小程序
微信小程序项目实例——摇色子
微信小程序项目实例——摇色子
耳返耳机有哪些品牌?
【7月更文挑战第11天】耳返耳机有哪些品牌?
1414 2