C语言scanf("%c"),getchar(),getch(),getche()的问题

1、这些函数读取的字符都是存放在哪的?有些是存放在同一地方的吗?(sacnf()和getchar()好像就是存放在同一地方的)

2、假如存放在同一地方时调用它们其中几个会冲突吗?
3、比如说用getch()做按任意键继续的暂停效果,当按下任意键后这个任意键会不会被存起来从而影响其他类似的函数?就像用getchar()输入一个字符,当按下Enter键同时也会把Enter(\n)存起来,这个\n就会对后面的某些功能照成影响。
4、还有按任意键继续不是有system("pause");这个函数吗?为什么要用到字符输入函数?是不是system("pause");这个函数有什么缺点?这个函数功能是怎么实现的?会不会也和其他输入函数一样存放字符?
5、之前我说的getchar()会存放\n,为什么在这之后再写一遍getchar()或其他方法就能去掉\n?
不好意思。。。。我是新手,问题可能比较多。。。。希望大家能详细回答下,感激不尽!!
之前我也百度过好多都不懂,比如说getchar()输入的字符是存在键盘缓冲区的,所以干脆来问了

1·这些函数都是从键盘缓冲区读取键盘的按键输入。键盘缓冲区由系统进行管理。
2.没什么冲突。
3.这些函数Scanf()要求必须把输入保存于内存变量中,其它函数可不保存。
4. 实现一个功能可由多个函数突现,不一定就好坏分明,只不过在不同的场合各有优势。追问

哦,不好意思,我第三那条说的存起来不是说存在内存中,是存在键盘缓冲区中,其实我第2条说的冲突就是指用getchar()存放字符会把回车也存放进去,这样的冲突还有吗

追答

键盘缓冲区(缓冲队列)内的键值一旦就某个函数所读取,该键值对程序来说就不在缓冲区中存在了。所以你说的冲突不存在。
至于回车,有些函数是将其作为数据分隔符使用,如scanf。另外的函数则可接收该健値。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-19
自己百度百科这些函数 有详细解释。 你说的这些问题都被很好的解决了。 如果你能读懂头文件中的这些函数怎么写的 大概你就懂了追问

大哥我是新手,初学C,要是能读懂我就不来问了,好歹我都打那么多字,你就一句让我去问百度吗

追答

新手你问这些了解这些? 自己都看不懂,问来做什么。。。
涉及到操作系统,编译原理,数据结构三部分的知识点,有人给你解释你也不懂。

追问

你有木有仔细看啊。。我没有问的很深啊,我只是问它们读取的字符是不是存放在同一地方会不会冲突、几个函数一起用会不会影响等,大多数只要回答是或不是,会或不会就好了,哪有那么麻烦。可你说了半天什么都没给我解释就说给我解释我都不懂,你这是来回答我的问题的吗?

追答

得得得,你自个玩

追问

到头来还是什么都没回答,我呵呵。

C语言scanf("%c"),getchar(),getch(),getche()的问题
1·这些函数都是从键盘缓冲区读取键盘的按键输入。键盘缓冲区由系统进行管理。2.没什么冲突。3.这些函数Scanf()要求必须把输入保存于内存变量中,其它函数可不保存。4. 实现一个功能可由多个函数突现,不一定就好坏分明,只不过在不同的场合各有优势。

c语言ASCII码排序问题
输入函数存在一个缓冲区,输入函数每次都会从输入缓冲区读数。同时,scanf()与getchar ()函数有一个相同的特点,就是输入完毕必须敲回车键才算完成输入。而getch(),getche()是 不需要回车键作为结束的。然而,只要输入缓冲区没有清空,所有字符包括回车都会记录在 输入缓冲区。如果没有将缓冲区清空,若...

c语言缓冲区类型,清空缓冲区,谈getchar、getch、getche
getchar()、getche()和getch()函数均用于从控制台读取字符。getchar()在缓冲区有内容时会立即读取,否则等待用户输入;getche()和getch()则直接读取字符而不显示在屏幕上,且无缓冲区等待。综上所述,C语言中的缓冲区机制有助于提升程序性能,而清空缓冲区的操作则确保了数据读取的准确性和程序的流畅...

c语言中 scanf后面一定要跟个 getchar吃回车吗?
c语言中在读取键盘数据时,一般是带缓存的数据输入,需要按回车键才能完成该“行”数据的输入确认。而 scanf()函数对这个回车确认符并不进行处理,回车符会留在输入缓存区中。因此,在下一个读“字符”操作函数(getchar, scanf("%c"), gets()等)运行时,会读到这个字符。而在读数值型数据或字...

C语言中的scanf里的%c会否录入一个空格符或者回车符?
scanf("%s",a)不对回车换行符进行处理,它是以空格作为字符串输入结束的标志。你可以测试一下只是scanf(“%s”,a); 按回车换行,它会一直让你输入。但是用getchar(a);的话回车的话它也会接收。2.getchar()只针对字符输入处理。scanf()还可以处理其他类型输入的数据。

C语言中getchar()啥意思
getchar()是c语言中的一个输入函数,可以用它来赋一个字符的值.例如: char a;a=getchar();当你在键盘上输入一个字符(如输入g)后按回车,那么字符变量a的值就是'g'了。与scanf的区别:1、getchar()函数只能输入一个字符型的值,而scanf()函数除了字符型,还可以输入多种数据类型的值,...

getchar()
getchar(),输入时回显,按回车后才开始读 getch(),输入不回显,自动读入(不要按enter后才读入);getche(),输入回显,自动读入 char ch;scanf("%c",&ch);输入回显,按enter后才读入

c语言中两个scanf为什么会出毛病?
c=getchar();这样可以使垃圾字符自动进入变量c中,而不破坏我们正确的流程和输入。如果是scanf()的话,可以按照下面的方式来写:scanf(”%c%c”,&a,&c);这样的效果跟使用getchar()是一样的。这样的方法无疑是浪费了一个内存空间,而且增加了很多的冗余代码。第二种方法是使用getche()函数,而不...

c语言里getchar()是什么
getchar()函数是C语言专门为输入单个字符而提供的,getchar()函数是从I\/O字符流中读取一个字符,必须输入换行才能读入字符。例如:include<stdio.h> int main(void){ char ch;int i;for(i=0;i<5;i++){ ch=getchar(); \/\/带回显,且等待按Enter键换行 printf("%c",ch);} return 0;...

哪位scanf() gets() getch() getche() getchar() printf() puts...
凡是最后带s的,都是读入或者输出一行 最后是f的,都是格式话的输入活输出 最后是char的都是读入或者输出1个字符的 大体就是这样了,剩下的那两个我也不熟悉,看看别的资料吧,呵呵

相似回答