getchar()的一点感受

【getchar()深入理解】 getchar()相关使用说明初稿,求访问指正!!! 阅读详情

今天花了很长时间看了这样一段小程序:

1 #include

2 main()

3 {

4     int c;

5     c=getchar();

6      while(c!=EOF)

7     {

8           putchar();

9           c=getchar();

10    }

11 return 1;

12 } 其实这是c程序设计语言的第一个小程序,不过当时我就有点乱了,因为我认为应该是一次只能输出一个字符,可是这个却可以实现多个字符的输出,在当时不理解的情况下,我又将第9行去掉,出来一个结果(可以试一下,是个死循环)。最后和同学讨论了一下,终于理解了。解释一下吧。

4 int c; //这个可以去看一下getchar的声明,就可以知道它的定义其实是int型的。

5 c=getchar();// 获取一个字符,注意:在这里只是获取了一个字符

6 while(c!=EOF)//判断是否结束

7 {

8 putchar();//把第一个数输出

9 c=getchar();//获取下一个数

10 }

重要的问题是循环部分,假如你输入的数是abc,其实这三个数都保存在了缓冲区里,第一次,从缓冲区中读取一个字符,然后循环(我原来想的是一次就结束),将缓冲区中的数据读取结束后才结束。

举个例子:

1 #include

2 main()

3 {

4 int c;

5 c=getchar();

6 putchar();

7 c=getchar();

8 putchar();

9 return 1;

10 }

如果你输入的依然是abc,那么程序会输出ab,并不会让你继续输入数据,因为缓冲区的数据还没有读取结束。

那么还看这个例子,如果输入a后回车呢?结果是输出a就结束,也没有让你输入数据,因为其实你已经输入了两个数据,一个是a,而另一个是回车,这回对这个程序有了深入了了解了吧?

C++中getchar()的使用方法 1 getchar()简介getchar()是C语言中的函数,C++中也包含了该函数。getchar()函数的作用是从标准的输入stdin中读取字符。也就是说,getchar()函数以字符为单位对输入的数据进行读取。2 getchar()读取缓冲区方式在控制台中通过键盘输入数据时,以回车键作为结束标志。当输入结束后,键盘输入的数据连同回车键一起被输入到输入缓冲区中。在程序中第一次调用getchar... 阅读详情

相关推荐

SQLSTATE58030

在优化一条SQL的时候遇到了执行错误 gtlions =# select t1.telnumber,t2.ua,t2.url,t1.apply_name,t2.apply_name from tb1 t1 gtlions -# left outer join tb2 t2 on t1.sid = t2.ipsid gtlions-# where t1.sum_date=20141128 a

Gtlions Tracker 3658

Qt 进程(基本用法)

QProcess 允许您将进程视为顺序 I/O 设备。然后,您可以通过调用 write() 来写入进程的标准输入,并通过调用 read()、readLine() 和 getChar() 来读取标准输出。由于它继承了QIODevice,因此QProcess也可以用作QXmlReader的输入源,或者用于生成使用。QProcess 提供了一组函数,允许在没有事件循环的情况下使用它,方法是挂起调用线程直到发出某些信号。notepad.exe 为记事本,因为该程序的具体目录添加到系统PATH,所以不用具体给出。

qq_45303986的博客 2987

FPGA新手避坑指南:手把手教你搞定RTL8211千兆网PHY的时序配置(附Verilog代码)

本文详细解析了FPGA与RTL8211千兆网PHY芯片的时序配置问题,重点介绍了TXDLY/RXDLY引脚设置、FPGA发送端和接收端的Verilog实现,以及调试与验证的完整流程。通过硬件电路设计和代码示例,帮助开发者解决网络连接不稳定、丢包等常见问题,提升千兆网通信的稳定性。

weixin_28732953的博客 539

getchar()函数的一些知识

目前就我学习的getchar()知识感觉都是比较零散的,因此在这试图归类一下,当然肯定有不完善的地方,还望海涵 1.首先,提到getchar()函数就必须提到缓冲区的概念,即在黑色的交互界面我们用键盘输入的值,这一部分可以看看c primer plus,里面有关于缓冲区的概念; 2.既然我们已经有了缓冲区的概念,那么,getchar()函数实际上就是读取了原本储存在缓冲区中的我们输出的字符,并且值得注意的是,无论我们输入到缓冲区中的字符究竟有多长,getchar只会读取其中的一个字节并将它返回(如果没有

just_a_fresh_man的博客 287

别再到处找模型了!手把手教你用Xinference+Docker部署本地私有大模型(Llama2/Qwen实战)

本文详细介绍了如何使用Xinference和Docker部署本地私有化大模型(如Llama2/Qwen),涵盖硬件配置、模型管理、Docker部署及性能优化等关键步骤。通过实战案例,帮助开发者快速构建企业级AI推理服务,确保数据安全与高效运行。

weixin_28683065的博客 231

基于STM32设计的智能水母投喂器(华为云IOT)_170

本项目利用STM32单片机控制各种传感器和水泵等设备,能够自动检测和调整水温和水质等参数,自动换水,自动供氧等等,充分满足了水母的养殖要求和需要。同时,根据水母喜欢的光环境,添加了RGB氛围灯,以及可以手动控制的喂食器等功能,提升了水母养殖的便利性和趣味性。

8805

关于getchar()的理解

1.getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了。 实际上是 输入设备->内存缓冲区->程序getchar 你按的键是放进缓冲区了,然后供程序getchar 你

可黑白子的专栏 1023

BMS控制板硬件设计核心要点与工程避坑指南

电池管理系统(BMS)硬件设计是保障锂电安全与寿命的关键环节,其本质是模拟前端精度、数字控制可靠性、电源完整性及电磁兼容性四大要素的系统协同。理解AFE芯片(如BQ76920)的物理层约束、MCU与专用监控IC的异构分工逻辑,是构建高鲁棒BMS的基础;而晶振布局、I²C总线匹配、MOSFET体二极管方向、开尔文采样等细节,直接决定量产良率与EMC合规性。在电动工具、储能系统、两轮电动车等中低功耗BMS应用中,成本敏感型方案常采用STM32F0+AFE架构,此时电源滤波电容选型、复位电路ESR控制、TVS/齐

weixin_30591519的博客 259

了解getch() 与 getchar() 函数的使用差别

1.系统使用差异 -- getch()函数不是C标准函数,仅在MS-DOS下可以使用,需要包含#include 头文件。 -- getchar()函数是C标准函数,但是在Linux和Windows的系统下均可以使用,需要包含 #include 2.在使用VC10的编译器时使用如下代码 #include #include int main(void) { char ch

宁静以致远 2163

【fpdlink显示】DS90UB948关于941连接948 GPIO调试问题

1. 前言 使用一个941连接2 948显示: 941的GPIO0/1/2/3到前948的GPIO0/1/2/3和941的D_GPIO0/1/2/3到948的GPIO0/1/2/3。 设置gpio3输出,则941的D_GPIO3设置高,而948的gpio3设置不高; 但设置gpio3输入后,看到941的D_GPIO3跟随948的gpio3变化。 2. 原理图连接 3. 测试代码 static int du90ub941_enable_port(struct goodix_ts_d

jzwjzw19900922的博客 2555

知识图谱(Knowledge Graph)原理与代码实战案例讲解

知识图谱(Knowledge Graph)原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来

AI天才研究院 1077

Qt的QTextStream

QTextStream

焕小谢的博客 1万+

华为OD机试新系统真题【计算电动车续航里程】

华为OD机试 新系统真题【计算电动车续航里程】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【计算电动车续航里程】多语言题解。

qq_45776114的博客 780

C语言中getchar()函数的详解

getchar()函数的详解

weixin_64182409的博客 3万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C语言 getchar()函数详解

getchar()函数机制 getchar()函数实际上是int getchar(void),所以它返回的是ASCII码,所以只要是ASCII码表里有的字符它都能读取出来。在调用getchar()函数时,编译器会依次读取用户键入缓存区的一个字符(注意这里只读取一个字符,如果缓存区有多个字符,那么将会读取上一次被读取字符的下一个字符),如果缓存区没有用户键入的字符,那么编译器会等待用户键入并回车后再执行下一步 (注意键入后的回车键也算一个字符,输出时直接换行)。 来几个例子: int main() { ch

Huang_WeiHong的博客 13万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

关于C语言中getchar()函数的用法

关于C语言中getchar()函数的用法

... 5万+

gets()和getchar()的用法

----------------------------------------------------| 问题描述一:(分析scanf()和getchar()读取字符)   |--------------------------------------------------scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因...

Xiao_Yanci的博客 2万+

关于C语言中getchar()的详细使用

(此贴对自己受用,来源网络,在此分享)在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的在C语言中有个重要的库函数getchar(),可从终端获得一个字符的ASCII码值。在终端输入字符时并非输入一个字符就会返回,而是在遇到回车换行前,所有输入的字符都会缓冲在键盘缓冲器中,直到回车换行一次性

Dormant的专栏 12万+

getchar()函数的使用方法

getchar()函数的使用方法 getchar()函数的功能是一个一个地读取你所输入的字符。例如,你从键盘输 入‘aabb’这四个字符,然后按回车,问题来了,getchar()不是一个一个读取吗,你输入一串是什么意思?其实,你按了回车之后,这四个字符会被存储到键盘缓冲区,这个时候你使用getchar()函数,他会从键盘缓冲区里一个一个去读取字符。 还有一个问题需要注意 getchar()函数的返...

爱偷懒的河马先生的博客 1万+

getchar()和gets()

因为最近被getchar弄的很烦所以今天中午好好梳理一下 getchar() 从缓冲区读走一个字符,相当于清除缓冲区 前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个 getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误 下面用一个...

邵光亮的博客 1万+

c、c++的getchar()函数

一、getchar简介() getchar()是C语言中的函数,C++中也包含了该函数。getchar()函数只能接收一个字符,其函数值就是从输入设备获取到的字符。 二、函数原理 (1)getchar有一个int型的返回值(返回值是用户输入的字符的ASCII码).当程序调用getchar时.程序就等着用户按键. (2)用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符...

YKbsmn的博客 1万+

getchar()和putchar()用法

​getchar()和putchar()用法: 1、getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF。 2、 putchar()以无符号 char 强制转换为 int 的形式返回写入的字符。 (1)当输出正确的时候,返回输出字符转换为的unsigned int 值; (2)当输出错误的时候,返回EOF(End of file)文件结束符。 ​

xiaojiamide的博客 2万+

getchar()详解

一开始没有输入时,缓冲区为空,然后执行到scanf的时候,用户输入123456,实际上缓冲区里输入的是123456\n,但是scanf取的数据是123456,所以scanf执行完,缓冲区里实际还留下了一个\n,然后getchar()取到的数据实际是\n,而\n的ASCII值与Y N的都不一样所以if elseif 都不会执行,直接执行 return 0 程序结束。按道理,程序是没有错误的,先输入一个字符密码,然后输入Y,则输出密码正确,输入N,则输出密码错误。即:如果正常读取,返回的是读取的字符;

baixian110的博客 7857

getchar()的用法详细讲解

getchar()用法

m0_73528660的博客 1万+

【C++】getchar()有什么用

getchar()在C程序中的功能是接收一个字符,当我们在连续输入字符的时候getchar()会给你意想不到的效果。下面是net小伙做的一些测试: 首先看下面的这个程序: 1 #include 2 #include 3 int main(void) 4 { 5 int a,b,c; 6 printf("please input num a:\n");

linghugoogle的博客 3万+

C语言丨getch(),getche()和getchar()的区别

关于C语言中的getch(),getchar() getche()函数肯定十分困扰大家,今天将他们整理和大家一起分享. 1、getchar() 函数名:getchar() 头文件:stdio.h 功 能:读取控制台输入的字符,并保存在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中)。 原 型:int getchar(void); 例如: #include <stdio.h> int main(void) { printf("%c\n", getchar...

Hsuesh的博客 3702
上一篇: C需要注意的细节
下一篇: bzero用法
bitscro
博客等级 码龄21年 19粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值