概要
所属标准库:C 标准库 - <stdio.h>
描述
C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数。
声明
下面是 getchar() 函数的声明。
int getchar(void)
返回值
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
实例
下面的实例演示了 getchar() 函数的用法。
#include <stdio.h>
int main ()
{
char c;
printf("请输入字符:");
c = getchar();
printf("输入的字符:");
putchar(c);
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
请输入字符:a
输入的字符:a
示例
示例1:getchar() 是会读取不可见字符(如 空格 回车,TAB 等)
#include <stdio.h>
void show_options()
{
char cUserChoose = 'r';
while ('q' != cUserChoose)
{
printf("\e[1;34m\n");
printf("-----------------------------------\n");
printf("Usage:1, Show Options first.\n");
printf(" 2, Show Options second.\n");
printf(" q, Go Back.\n");
printf("-----------------------------------\n");
printf("Please input:");
printf("\e[0m\n");
cUserChoose = getchar();
switch (cUserChoose)
{
case '1':
break;
case '2':
//do something
break;
default:
break;
}
}
}
void run_loop()
{
char cUserChoose = 'r';
while ('q' != cUserChoose)
{
printf("\e[1;32m\n");
printf("-----------------------------------\n");
printf("Usage:1, Test Show Options.\n");
printf(" 2, Test Do Something.\n");
printf(" q, Quit.\n");
printf("-----------------------------------\n");
printf("Please input:");
printf("\e[0m\n");
cUserChoose = getchar();
switch (cUserChoose)
{
case '1':
show_options();
break;
case '2':
//do something
break;
default:
break;
}
}
}
int main()
{
run_loop();
return(0);
}
输入:3[回车]

示例2:getchar()实现的去掉空格
#include <stdio.h>
char st[500];
int u=0;
void read()
{
char c;
while(c!='\n')
{
c=getchar();
while(c==' ')
c=getchar();
st[u]=c;
u++;
}
}
int main()
{
read();
for(int i=0;i<u;i++)
printf("st[%d]:%d\n",i,st[i]);
return 0;
}
输入:123[空格]abc[Tab].[回车]

注意:输入字符1,2,3,通过%d输出是49,50,51,原因是:getchar()是输入字符的输入函数,不能直接当做整型变量,在运行时采用ASCII码,1的ASCII码为49。可以通过atoi()或 i=(c-‘0’)*10方式转换;
https://zhidao.baidu.com/question/264777607.html
示例3:getchar()字符数字转换
#include <stdio.h>
#include <stdlib.h>
void read()
{
int i=0;
char buf[32] = {0};
char c;
printf("请输入1-16之间的数字:");
while((c=getchar()) !='\n')
{
buf[i] = c;
i++;
if(i >= 32 - 1)
{
break;
}
}
if(i==0 || atoi(buf)<1 || atoi(buf)>16)
{
printf("输入有错!\n");
return;
}
//打印输出
for(int j=0; j<i; j++)
{
printf("buf[%d]:%d \n",j,buf[j]);
}
printf("atoi(buf):%d \n",atoi(buf));
printf("\n请输入一个0-9之间的数字: ");
c=getchar();
int num = c - '0';
printf("c:%d, num:%d \n",c,num);
}
int main()
{
read();
return 0;
}
C 标准库 - <stdio.h>
http://www.runoob.com/cprogramming/c-standard-library-stdio-h.html
本文深入解析C语言中getchar函数的使用方法,包括其功能、声明、返回值及多个示例代码,帮助读者理解如何正确应用getchar进行字符输入处理。
1689

被折叠的 条评论
为什么被折叠?



