首页 > 编程语言 > 详细

C语言关于getchar()的小笔记

时间:2020-01-08 11:30:49      阅读:89      评论:0      收藏:0      [点我收藏+]
#include <windows.h>
#include <mmsystem.h>
#include <string.h>

void main()
{
    int a;
    char b;
    float c;
    printf("please input an integer:");
    scanf("%d", &a);
    printf("integer:%d\n", a);
    printf("please input an character:");
    getchar();/*将缓冲区的回车读走,如没有getchar(),scanf("%c",&b)会把回车读走,从而不能顺利输入字符型,scanf在读取字符型时需要区别对待,
因为它会读走回车,要加入getchar(),读取其他整型和float等类型时不用
*/ scanf("%c", &b); printf("character:%c\n", b); printf("please input a float number:"); scanf("%f", &c); printf("float:%f\n", c); }

有getchar():的运行结果

技术分享图片

 

 

 没加入getchar():运行到输入字符串阶段发现是直接跳过的,因为scanf("%c",b)直接读取了缓冲区中的回车换行符(因为上一步我输入了12和回车换行符,12被 scanf("%d",&a);读走,所以只剩下回车换行符)

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
  int a;
  char b;
  float c;
  printf("please input an integer:");
  scanf("%d",&a); 
  printf("integer:%d\n",a); 
  printf("please input an character:");
  scanf("%c",&b);
  printf("character:%c\n",b) ; 
  printf("please input a float number:");
  scanf("%f",&c);
  printf("float:%f\n",c) ; 
}

技术分享图片

-----------------------------------------------------------------------------------------------------------------------------

相比较之下,我比较喜欢C++,不用考虑这些东西,下面是C++代码:

// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
int main()
{
  int a;
  char b;
  float c;
  cout<<"please input an integer:";
  cin>>a;
  cout<<"integer:"<<a<<endl; 
 cout<<"please input an character:";
 cin>>b;
 cout<<"character:"<<b<<endl ; 
  cout<<"please input a float number:";
  cin>>c;
cout<<"float:%f\n"<<c<<endl ; 
/*  return 0;*/
}

技术分享图片

C语言关于getchar()的小笔记

原文:https://www.cnblogs.com/hmy-666/p/12165592.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!