C语言中getchar()怎么用?
展开全部
getchar()返回输入流中的一个字节,如果输入流已经到尾部,返回EOF(-1)
例如:
#define EOF -1
void func(void)
{
int c = getchar();//getchar 返回值是int
if(c==EOF)
return;
func();//递归调用func函数,实现倒序输出
putchar(c);//输出字符
}
这个函数会在输入EOF后结束读取,然后输出输入的倒续。
扩展资料:
getchar函数语法
1、函数声明
int getchar(void)
2、参数
3、功能
C库函数int getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于getc带有 stdin 作为参数。
4、返回值
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回EOF。
5、用法
该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件。
参考资料来源:百度百科-getchar()
展开全部
要明白这个这个问题,首先要理解输入缓冲的机制和scanf的原理。
当运行控制台程序的时候,会有一个输入缓冲区,这个缓冲区就是放置你输入的字符串的,无论你输入的是数字还是字符,放到缓冲区里都是字符串,只有你调用scanf时指定不同的格式才会产生不同的含义。只有当你输入回车的时候,才会把你的输入添加到缓冲区里,当输入回车之前,scanf和getchar都还没有调用。
当你调用scanf的时候,会首先检查缓冲区是否还有内容,如果没有则程序停止,接受输入,当你输入回车后,你的输入进入缓冲区,然后scanf从缓冲区中拿出(拿出的意思是从缓冲区复制一份放到变量里,然后从缓冲区中删除)它想要的字符,如果没有它想要的,则不会从缓冲区中删除任何东西,继续运行。关键是什么是它想要的,这就跟scanf的第一个参数里指定的格式有关了。
如果格式是%c,那么任何字符都是它想要的,所以你第二个程序里的第二个scanf("%c")会得到‘+’后面的空格' '。如果格式是%d,则会忽略任何空白字符(空格、回车、制表符等),忽略的意思是,从缓冲区里删除,但并不保存;如果遇到数字,则拿出并保存给后面的整数,也就是说%d的时候,scanf想要的字符是数字和空白符。所以你第一个程序里的第二个scanf("%d")忽略掉了空格,正确输入了数字。
当运行控制台程序的时候,会有一个输入缓冲区,这个缓冲区就是放置你输入的字符串的,无论你输入的是数字还是字符,放到缓冲区里都是字符串,只有你调用scanf时指定不同的格式才会产生不同的含义。只有当你输入回车的时候,才会把你的输入添加到缓冲区里,当输入回车之前,scanf和getchar都还没有调用。
当你调用scanf的时候,会首先检查缓冲区是否还有内容,如果没有则程序停止,接受输入,当你输入回车后,你的输入进入缓冲区,然后scanf从缓冲区中拿出(拿出的意思是从缓冲区复制一份放到变量里,然后从缓冲区中删除)它想要的字符,如果没有它想要的,则不会从缓冲区中删除任何东西,继续运行。关键是什么是它想要的,这就跟scanf的第一个参数里指定的格式有关了。
如果格式是%c,那么任何字符都是它想要的,所以你第二个程序里的第二个scanf("%c")会得到‘+’后面的空格' '。如果格式是%d,则会忽略任何空白字符(空格、回车、制表符等),忽略的意思是,从缓冲区里删除,但并不保存;如果遇到数字,则拿出并保存给后面的整数,也就是说%d的时候,scanf想要的字符是数字和空白符。所以你第一个程序里的第二个scanf("%d")忽略掉了空格,正确输入了数字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char c;
c=getchar();//表示输入一个字符
不过我平时太多直接 getchar(); 以此来直接吃掉前面scanf的那个回车以防干扰下面的输入
另外还有一个getch(),这个作用与getchar()一样是输入一个字符,不过getchar()输入了在控制台会显示字符,getch()不会显示,所以getch()常用作密码输入
c=getchar();//表示输入一个字符
不过我平时太多直接 getchar(); 以此来直接吃掉前面scanf的那个回车以防干扰下面的输入
另外还有一个getch(),这个作用与getchar()一样是输入一个字符,不过getchar()输入了在控制台会显示字符,getch()不会显示,所以getch()常用作密码输入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{ char c;
c=getchar(); /*从键盘接收一个字符,只能一个,多于一个其余作废*/
putchar(c);
}
还可以这样用:
main()
{
putchar(getchar());
}
{ char c;
c=getchar(); /*从键盘接收一个字符,只能一个,多于一个其余作废*/
putchar(c);
}
还可以这样用:
main()
{
putchar(getchar());
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ch=getchar();等待从键盘上输入一个字符
putchar(ch);输出此字符
他们包含在头文件 #include
中.
putchar(ch);输出此字符
他们包含在头文件 #include
中.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询