凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

读取一个字符

已有 430 次阅读| 2016-4-8 17:32

最简单的输入输出操作是从“标准输入单元”中读取一个字符,或往“标准输出单元”写一个字符。读取某个字符可以用函数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


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-24 08:56 , Processed in 0.014667 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部