getchar是获取字符。

使用规范:

成功时,返回读取的字符(提升为int值)。
返回类型是int以适应表示失败的特殊值EOF:
如果标准输入位于文件末尾,则函数返回EOF 。 如果发生其他一些读取错误,该函数也会返回EOF。

putchar 是将字符写入标准输出。

使用规范:

成功时,返回写入的字符。
如果发生写入错误,则返回EOF。


int main()
{int ch = getchar();//读取到一个字符的ASCII码值,返回int型。putchar(ch);//接受字符的ASCII码值,将他打印出来。return 0;}

输入A打印A,接受一个字符打印一个字符。


int main()
{int ch = 0;while ((ch = getchar()) != EOF)//当ch 不等于 EOF(-1)时{putchar(ch);//打印ch}return 0;
}

这是因为当我们输入一个字符时需要输入回车来确认,getchar会读取回车,当我们输入A 回车,他就会打印A 回车。

如果想停止程序需要按ctrl + z。


我们来写一个程序

int main()
{char password[20] = { 0 };printf("请输入密码:>");scanf("%s", password);printf("请确认密码(Y/N):");int ch = getchar();if (ch == 'Y')printf("确认成功:\n");elseprintf("确认失败:\n");return 0;
}

运行结果:

你能找到为什么会直接打印确认失败的原因吗?


我们只需要在加一个 getcha() 来把回车(\n)读取清理掉。

新的代码如下:

当然这个代码也是有bug的,当我们scanf输入的数据中有空格时,scanf读取到空格就会停止。

我们来看图:

这时候我们可以写一个while循环

int main()
{char password[20] = { 0 };printf("请输入密码:>");scanf("%s", password);printf("请确认密码(Y/N):");int tmp = 0;while ((tmp = getchar()) != '\n'){;}/*当getchar读取的不是\n时,就一直循环直到读取到\n,开始判断,等于\n,为假,把\n拿走并且停止循环。*/int ch = getchar();if (ch == 'Y')printf("确认成功:\n");elseprintf("确认失败:\n");return 0;
}

还有一种方法

我们把%s改成%[^\n],scanf里的内容输入结束后按回车,按回车之前的字符都会传到缓冲区

目前了解的有关知识就这么多了,如果有后续了解更多知识我还会来更新的。

文章如果有错误或者不好的地方请提出,我会积极听取建议并修改的。

getchar 和 putchar相关推荐

  1. putchar(c1)在C语言中表示,C语言中的getchar和putchar详解

    一.首先给出<The_C_Programming_Language>这本书中的例子: #include int main( ) { int c; c = getchar(); while ...

  2. 分支 getchar和putchar

    getchar()和putchar()是专门面向字符的函数. #include<stdio.h> #define SPACE ' ' int main(void){ char ch; wh ...

  3. if--(else)语句,getchar()和putchar()、、||、!逻辑运算符

    1.if 语句;示例程序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include<stdio.h> int main ...

  4. C语言getchar()和putchar()函数

    前言: getchar()和putchar()函数都是单字符函数I/O,每次只能处理一个字符.getchar()是输入,putchar()是输出. 在了解函数之前先说一下缓冲区,什么是缓冲区?用户输入 ...

  5. getchar与putchar在C语言中的作用

    1.getchar和putchar的作用 getchar 输入一个字符,但是其输出的内容是ASCII码值 ch = getchar 用一个变量去接收ASCII值 putchar(ch) 输出一个字符到 ...

  6. C语言的getchar和putchar

    getchar和putchar输入输出字符 getchar用来输入单个字符,putchar用来输出单个字符,在某些scanf函数使用不方便的场合可以使用getchar来输入字符. 一个简单的例子 #i ...

  7. c语言 用getchar和putchar实现字符串的输入输出

    getchar和putchar是只能输入单一字符的 运用循环实现字符串的输入输出

  8. C语言字符变量输出值,C语言,交换任意两个字符型变量的值并输出结果。要求:利用getchar和putchar函数。...

    C语言,交换任意两个字符型变量的值并输出结果.要求:利用getchar和putchar函数.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶 ...

  9. C语言中getchar()和putchar()函数

     目录: 1.getchar()和putchar()函数的定义. 2.getchar()函数为什么用int定义返回值类型. 3.函数getchar()和函数scanf()的工作原理. 一.getcha ...

  10. 一文搞懂getchar()和putchar()的奇怪现象

    ​ 1.首先来看一个例子: #include <stdio.h>int main( ) {int c;c = getchar();while (c != EOF){putchar();c= ...

最新文章

  1. Redis单机版本框架
  2. Android新手之旅(10) 嵌套布局
  3. 30KVA UPS电源安装电线的配置
  4. ps里面的批处理教程
  5. ipsec NAT-T与穿透
  6. MBR与GPT的区别
  7. 综合实例_为啥要做“三维管线综合”?看个实例就明白
  8. Quartz的简单使用
  9. 9-13 ruby环境准备
  10. git查看某次提交的内容
  11. OIO下的socket传输文件
  12. 立方根c语言,在C ++中找到数字的立方根
  13. python 请在微信客户端打开_完美解决 请在微信客户端打开链接
  14. java循环例题while型_Java基础--while、do-while、for循环结构(附例题)
  15. 学计算机的人常备哪些护眼的东西,常用电脑的人如何保护视力?
  16. Huggingface简介及BERT代码浅析
  17. mulesoft 入门与实践-1
  18. 交并比 (IoU), mAP (mean Average Precision), 非极大值抑制 (NMS, Soft NMS, Softer NMS, IoU-Net)
  19. 筛法(线性筛,厄拉多塞筛)
  20. 关于“为什么选择我们公司?”应聘者如何回答?

热门文章

  1. DVWA------暴力破解(全级别详解)
  2. java long初始化_Java变量的初始化
  3. 【原创】Pig 0.10.0 piggybank 如何编译
  4. 微信小程序——button添加背景图片
  5. 第二单元电梯作业总结
  6. 视频教程-赵强老师:大数据从入门到精通(7)HBase-Hbase
  7. 云南计算机专修学院,云南城市建设职业学院五年制大专热门专业
  8. 公司新闻稿怎么写更吸引眼球?
  9. hp计算机如何用u盘启动,HP惠普笔记本如何进入bios设置u盘启动装系统?-电脑自学网...
  10. 五十二、GUI布局tkinter完善Python小项目