这段代码中涉及到for循环中用scanf输入单个字符的问题:
#include "stdio.h"
#include "stdlib.h"
main()
{
int i;
/*char ch;*/
for(i=1;i<=10;i++)
{
printf("%d",i);
/*scanf("%c",&ch); */
/*getche(); */
/*ch=getchar(); */
/*ch=getch(); putchar(ch);*/
printf("\n");
}
getch();
}
好多论坛上已经进行过讨论,今天我运行了程序,又主要查看了getch(),getche(),getchar()这几个函数,看了它们之
间的区别:
getch():
调用方式:int getch(void)
getch()从控制台读取一个字符,但不把该字符显示在屏幕上,也就是不回显.
getche():
调用方式:int getche(void)
getchar()从控制台读取一个字符,把该字符显示在屏幕上,也就是回显.
getchar():
调有方式:int getchar(void)
getchar()从控制台读取一个字符,并回显,它和getch(),getche()的不同在于,它等到输入一个回车才结束,就算你输
入了一个字符串,它也只取其中的第一个字符.
由于用getchar()读取一个字符的时候,它需要回车才能结束,这样很容易将第一次输入的'回车'赋值给下一个字符变
量而出错,我用了getch()和getche(),这两个函数都可以,主要是因为没有'回车'的干预,很简单的一个函数竟然有这
么大的学问.
对了,谁知道linux下的getche()函数在哪个的头文件下,请不吝赐教.
阅读(4218) | 评论(0) | 转发(0) |