凌阳教育专注嵌入式教育14年,良心教育,有担当,有诚信,值得信赖的教育品牌,欢迎访问官网http://www.sunplusedu.com

读取一个字符

上一篇 / 下一篇  2016-04-08 17:32:28

最简单的输入输出操作是从“标准输入单元”中读取一个字符,或往“标准输出单元”写一个字符。读取某个字符可以用函数getchar来完成。getchar的形式为:

variable_name=getchar();

variable_name是已声明为char类型的有效C变量名。当遇到该语句时,计算机等待从键盘输入一个字符,并将该字符作为一个数值赋给getchar函数。由于getchar用在赋值语句的右边,因而getchar的字符值被赋给了左边的变量名。例如:

char name

name=getchar();

当我们在键盘上按下H键时,就把字符‘H’赋给了变量name。由于getchar是一个函数,因而它需要有括号。

图中的程序显示了在交互环境中getchar函数的使用情况。

       #include<stdio.h>

       main()

       {

              char answer;

              printf("Would you like to know my name?\n");

              printf("Type Y for YES and N for NO:");

              answer=getchar();

              if(answer=='Y'||answer=='y')

                     printf("\n\nMy name is BUSY BEE\n");

              else

                     printf("\n\nYou are for nothing\n");

       }

该程序为用户显示一个YES/NO类型的问句,并读取用户的单个字符响应。如果响应为Y,那么其输出为如下消息:

My name is BUSY BEE

否则,输出为:

You are good for nothing

注意,在输入文本与输出消息之间有一空行。

getchar函数可以用来连续一行文本中的字符。例如,下面的程序段就可以从键盘中一个接一个地读取字符,直到按下回车键为止。

......

char character;

character ='';

while (character!='\n')

{

       character=getchar();

}

......

警告

getchar()函数恩能够接受键入的任意字符,包括回车键和制表符。这意味着当我们键入单个字符时,在getchar()函数返回后,新行字符在输入队列中等待,这在交互循环中使用getchar()函数时会产生问题。getchar()函数可用来消除不想要的新行字符。我们也可以用flash()函数来冲刷掉不想要的字符。

写字符

getchar函数一样,也有一个类似的putchar函数,用于每次往终端写字符。其形式如下:

putchat (variable_name);

其中variable_name是一个char类型的变量,包括一个字符。该语句在终端显示包含在variable_name变量中的字符。例如,语句:

answer='Y';

putchar (answer)

将字符Y显示在屏幕上。语句:

putchar(‘\n’);

是屏幕上的光标移到下一行的开始处。

程序从键盘读取一个字符,并进行大小写转换后再显示出来,也就说,如果输入的是大写字母,那么输出的就是小写字母。反过来也是如此。

该程序使用了三个新的函数islowertouppertolowerislower是一个条件函数,如果参数为小写字母,那么该函数为TRUE,否则为FALSE。函数toupper把参数的小写字母转换为大写字母,而tolower函数正好相反。

#include<stdio.h>

       #include<ctype.h>

      

       main()

       {

              char alphabet;

              printf("Enter an alphabet");

              putchar('\n');

              alphabet=getchar();

              if(islower(alphabet))

                     putchar(toupper(alphabet));

              else

                     putchar(tolower(alphabet));

       }

输出

Enter an alphabet

a

A

Enter an alphabet

Q

q

Enter an alphabet

z

Z

凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar