码迷,mamicode.com
首页 > 编程语言 > 详细

C语言#getchar()函数

时间:2014-12-09 15:29:29      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   数据   div   log   

1、getchar()的作用

  getchar()函数的作用是从缓冲区读入一个字符的数据,第一次读取数据getchar()会等待用户键入ENTER然后开始从缓冲区进行读取数据,如果缓冲区的数据大于1个字节,剩下的数据会暂时存储在缓冲区,getchar会依次进行读取,而不需要用户再次输入ENTER来触发读取。

  getchar()的返回值是一个整型的数据,其值对应字符的ASCII码。

 

2、统计输入空格数量的小程序

  

 1 #include<stdio.h>
 2 
 3 main() {
 4     
 5     int n;
 6     int m;
 7     n = 0;
 8     printf("please input a String:\n");
 9 
10     while((m = getchar()) !=\n){
11         if(m ==  ){
12                 ++n;
13         }    
14     }
15     printf("n = %d\n",n);
16     
17 }

程序实现了统计空格的简单功能,将getchar()读取的数据赋给整型变量m用于统计空格的数量。

Q1:在C语言中Char型变量实质上也是一种整型变量,如果将程序中m定义为Char型数据,功能还能不能实现?

Q2:换一种写法,会出现什么情况?

     程序进入死循环,为什么?

 1 #include<stdio.h>
 2 
 3 main() {
 4     
 5     int n;
 6     int m;
 7     n = 0;
 8     printf("please input a String:\n");
 9     m = getchar();
10     while(m !=\n){
11         if(m ==  ){
12             ++n;
13         }    
14     }
15         printf("n = %d\n",n);        
16     
17 }

 A1:可以实现

 A2:第一种方式getchar()只在循环外读取一个字符(当读取的字符不是回车时进入循环),进入循环后不再运行getchar()读取外界字符,m的值不在变化,当然死循环;
    第二种每次循环都运行一次getchar()读取一个字符,直到输入回车结束;

C语言#getchar()函数

标签:style   blog   io   ar   color   sp   数据   div   log   

原文地址:http://www.cnblogs.com/DishChicken/p/4153326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!