#include <stdio.h>
int main(){
int i=0,menuitem;
char ch;
printf("Please Choose Menu's Item...\n");
while (!(menuitem==1 || menuitem==2 || menuitem==3))
{
if (menuitem==0) break;
if(i++>0)
printf("Notice: Input Number(0-3),OK?\n");
ch = getchar();
menuitem = (int)ch - 48;
}
return menuitem;
}
上面这段程序,输入一个字符,然后回车,会连续出现两次Notice: Input Number(0-3),OK?,这可是一个bug,那么造成这个Bug的原因是什么呢,是因为getchar()一次只读一个字符,所以还有一个回车符没有读,所以才会这样。修改办法如下:
。。。。。
if(i++>0)
printf("Notice: Input Number(0-3),OK?\n");
ch = getchar();
getchar();
menuitem = (int)ch - 48;
。。。。。。
分享到:
相关推荐
在C语言中,处理输入输出的函数很多,其中scanf和getchar都是常用的输入函数,但它们的用途和特点各不...通过合理使用getchar的妙用,可以有效解决一些在使用scanf时可能遇到的输入问题,提升程序的健壮性和用户体验。
在使用getchar、getch和getche函数时,需要注意回车符的吸收问题。这三个函数都可能会遇到回车符的问题,因此在使用时需要小心处理。 getchar、getch和getche函数都是C语言中的输入函数,但是它们之间存在着一些...
为了解决这个问题,我们需要清除键盘缓冲区中的回车换行符,确保下一次`getchar()`调用能正确地读取新输入的字符。【示例2】提供了一个解决方案,即在每次读取用户输入字符后,额外调用一次`getchar()`来消耗掉缓冲...
getch()和getchar()的比较 getch()和getchar()都是从键盘读取一个字符的函数,但是它们之间存在一些关键的区别。 getchar()函数 getchar()函数是从键盘读取一个字符的函数,它的返回值是用户输入的第一个字符的...
### getchar函数和EOF详解 #### 一、getchar函数简介 在C语言中,`getchar()`函数主要用于从标准输入(通常为键盘)读取单个字符。此函数定义于`stdio.h`头文件中,并且它返回的是一个整型值,代表所读取的字符的...
### C语言中getchar和gets的区别 在C语言编程中,`getchar()`与`gets()`是两个常用函数,它们分别用于从标准输入流(通常是键盘)读取单个字符和整个字符串。虽然这两个函数都能从键盘接收输入,但它们的工作方式、...
在C语言中,单字符输入输出是编程中最基础的操作之一,`getchar()` 和 `putchar()` 函数就是实现这一功能的关键。这两个函数主要用于处理单个字符的输入和输出,对于初学者来说是非常重要的知识点。 `getchar()` ...
C语言中的getchar和putchar的使用方法 getchar是以行为单位进行存取的。 当用getchar进行输入时,如果输入的第一个字符为有效字符(即输入是文件结束符EOF,Windows下为组合键Ctrl+Z, Unix/Linux下为组合键Ctrl+D)...
scanf(), getchar(), 和gets()函数都是标准输入函数,它们在C语言中使用非常频繁,但是在实际应用中却常常因为使用不当而导致问题。下面我们将深入剖析scanf()、getchar()和gets()函数的异同,并探讨它们在读取字符...
getchar与getch的区别,详细剖析了这两者之间的区别,深入浅出,容易理解。推荐!!!
** getchar getchar getchar getchar getchar getchar
getchar 函数详解 getchar 函数是 C 语言中一个基本的输入函数,它允许用户从标准输入设备(通常是键盘)中读取单个字符。下面是对 getchar 函数的详细介绍。 getchar 函数的原理 getchar 函数的实现是通过宏来...
然而,scanf()函数也存在一些问题。例如,在程序1中,我们使用scanf()函数来读取两个字符,但是程序的执行结果却与预期不同。分析发现,这是因为scanf()函数从输入流缓冲区中读取数据,而不是从键盘读取数据。当用户...
getchar是C语言中的一个函数,用于从缓冲区中读取一个字符。它的基本功能是从标准输入设备(通常是键盘)读取一个字符,并将其返回。 当使用getchar时,需要注意以下几点: 如果缓冲区中没有字符可供读取,getchar...
C lessions of RiceYuan(CodeBock) getchar getchar getchar getchar getchar
在C语言中,`getchar()` 是一个非常基础且实用的函数,用于从标准输入(通常是键盘)读取单个字符。它定义在 `<stdio.h>` 标准输入输出库中,因此在使用 `getchar()` 之前,需要包含这个头文件。下面我们将详细讨论 ...
getchar的功能和用法 getchar的功能和用法 getchar的功能和用法 getchar的功能和用法 getchar的功能和用法
getchar是C语言中的一个标准库函数,以下是关于getchar的详细介绍: 一、功能 getchar函数的主要功能是从标准输入(通常是键盘)读取一个字符,并将其作为int类型返回。这个函数通常用于从键盘获取用户输入。 二、...
以前在看K&R的The C Programming Language(SecondEdition)第1.5节的字符输入/输出,被getchar()和EOF所迷惑了。可能主要还是由于没有搞清楚getchar()的工作原理和EOF的用法。因此,感觉很有必要总结一下,不然,很多...