首页 > 其他分享 >关于C语言getchar()的作用理解

关于C语言getchar()的作用理解

时间:2023-05-13 16:57:56浏览次数:34  
标签:10 ch 输出 C语言 理解 fgets 输入 getchar

让我们先看一个程序

#include<stdio.h>
int main(){
  char ch[100];
  fgets(ch,10,stdin);//用标准输入设备输入
  fputs(ch,stdout);//用标准输出设备输出
  return 0;
}
  

这个时候,我们输入超过10个字符,只读前十个字符;不超过10个字符,输入字符时,输出会多输出一行,说明\n也可以被fgets读入。

#include<stdio.h>
int main(){
  char ch[100];
  int a;
  scanf("%d",&a);   fgets(ch,10,stdin);//用标准输入设备输入   fputs(ch,stdout);//用标准输出设备输出   return 0; }

此时我们输入123换行,输入就结束了,但是输出除了123下面还输出了一行空白,说明a为123,而输入的换行被fgets读取,又被输出,导致有这个结果,但是这个程序正常的运行是先输入a,在输入ch,此时就需要getchar。

#include<stdio.h>
int main(){
  char ch[100];
  int a;
  scanf("%d",&a);
  getchar();   fgets(ch,10,stdin);//用标准输入设备输入   fputs(ch,stdout);//用标准输出设备输出   return 0; }

getchar获取换行符并且丢掉,此时程序就可以像我们正常的理解运行了

 

标签:10,ch,输出,C语言,理解,fgets,输入,getchar
From: https://www.cnblogs.com/gunancheng/p/17397668.html

相关文章

  • 理解vue2.x版本中productionTip=false设置无效的原因
    首先,我们看到vue官网中关于productionTip的API使用:但是,我在本地中使用却无效,代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname=&q......
  • 初始c语言的学习
    1、计算机的发展历史,C语言是与计算机沟通的语言,计算机只能够识别二进制,也即正负电(1,0)。2、空项目->源文件,右键新建项目->创建一个新的项目。3、头文件#include<stdio.h>主函数intmain(){(这里开始你的代码)return0;}4、第一个库函数printf("%d\n",xxx);在此介绍我所了解的库函......
  • 海量数据处理解决方案
      以上这个流程图通用解决方案,可以 解决 高并发高可用es按照条件查询redis根据id查询详情比如查询商品。你输入电脑。这个查询走的是es。查询到列表之后,你再点击某个商品,进入详情页面,这时候就走redis查询了mysql同步redis和es用什么方案? 解决方案canal......
  • 双向链表_C语言
    2023年5月12日22:35:371.数据结构普通节点:数据域*data,指针域*prev、*next头结点:size+普通节点其中:头结点data为NULL,size是指定data空间大小,data数据类型未定,也就是说头结点不同于普通节点本文想要实现的额外功能:data数据无论是多大,无论是什么类型,都能直接存放进去代码......
  • C语言--字符操作库函数1
    strtok 字符串分割char*strtok(char*str,constchar*sep);strerror返回错误码,所对应的错误信息char*strerror(errno)errno--errno.h 是一个全局错误码的变量当C语言的库函数在执行过程中,发生了错误,就会把对应错误吗复制到errno中。字符分类函数引用<ctyoe.h>intret=iscntrl......
  • c语言环境配置
    1.先从百度搜索Windows下MinGW-w64的安装2.在从链接https://pan.baidu.com/s/1aMyeF4iUl0Bfn-P8ILGliQ3.在此电脑属性打开高级系统设置4.打开环境变量,再编辑用户变量中的Pith  5.新建浏览自己文件mingw64中的bin文件 一直确定退出 6.Win加R键输入cmd,输入gcc-v后有......
  • 打卡 c语言趣味编程 最佳存款问题
    假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的5年中的每年年底取出1000元,到第5年时刚好取完,请算出他存钱时应存入多少。思路:计算储蓄金额的数学公式为:储蓄金额=每年取出金额×(1+月息)^(存款年限×12)定义每年取出金额和存款年......
  • 通过C语言玩扫雷
    直接进入主题:先思考后敲代码!!首先,我将扫雷分为两个棋盘,一个放雷,另一个为玩家猜测盘。这就有同学问了,设置一个棋盘不就完了,这样不就搞复杂了吗?先简短的回答这位同学的问题:因为我的考虑是这样的,我用‘1’代表有雷,‘0’代表没有雷,如果放在一个盘中,出现多个1的时候,无法确定这是雷还是......
  • 深入理解JPEG
    ISO/IEC10918-1标准定义了三种压缩模式:顺序DCT、逐行扫描DCT和逐列扫描DCT,每种模式下均有多个可选的压缩比。标准还定义了几个可选的基于区块的压缩模式和编码方案,如渐进扫描和多扫描。ISO/IEC10918-1可以存储所支持的所有压缩模式的图像数据,并根据实际需要进行解码和显示。......
  • C语言程序设计(第四版)谭浩强版 课后答案 第四章
    4、#include<stdio.h>intmain(){inta,b,c;scanf("%d%d%d",&a,&b,&c);if(a>b){if(a>c){printf("maxnumis:%d\n",a);}......