Shuffy

不断的学习,不断的思考,才能不断的进步.Let's do better together!
posts - 102, comments - 43, trackbacks - 0, articles - 19

[转]http://aone.javaeye.com/blog/60600(有改动)
getc():

调用方式:int getc(FILE *stream)
它返回指定输入流stream的当前位置的下一个字符,并增加文件的位置指示器.

getch():
调用方式:int getch(void)
getch()从控制台读取一个字符,但不把该字符显示在屏幕上,也就是不回显.

getche():
调用方式:int getche(void)
getchar()从控制台读取一个字符,把该字符显示在屏幕上,也就是回显.

getchar():
调有方式:int getchar(void)
getchar()从控制台读取一个字符,并回显,它和getch(),getche()的不同在于,它等到输入一个回车才结束,就算你输入了一个字符串,它也只取其中的第一个字符.

Feedback

# re: c语言中getc(),getch(),getche(),getchar()的区别   回复  更多评论   

2007-05-04 20:48 by sandy
getch()和getche()都是在输入一个字符的之后就立刻执行下面语句而不需要等到输入一个回车才结束。

#include<stdio.h>
#include<conio.h>

int main()
{
char ch;
printf("请输入一个字符:");
ch=getch();
printf("ch=%c\n",ch);
}
测试结果:
请输入一个字符:ch=d
请按任意键继续. . .
//使用getch();我输入的是d,但在屏幕上根本就看不到我输入的是什么,程序是直接把d这个字符赋给ch了,然后顺序执行printf("ch=%c\n",ch);语句。
我把程序改一下,把getch()改为getche()
#include<stdio.h>
#include<conio.h>

int main()
{
char ch;
printf("请输入一个字符:");
ch=getche();
printf("\nch=%c\n",ch);
}
请输入一个字符:g
ch=g
请按任意键继续. . .
这次屏幕上有回显我输入的g

# re: c语言中getc(),getch(),getche(),getchar()的区别   回复  更多评论   

2007-05-04 20:50 by sandy
关于getc()详见随笔“C语言中关于文件的一些操作”

# re: c语言中getc(),getch(),getche(),getchar()的区别   回复  更多评论   

2007-05-04 22:01 by sandy
在D盘建立crt_getc.txt,输入dsfdsgfdhdshgjtreter
#include <stdio.h>
#include<process.h>
int main()
{
char buffer[81];
int i, ch;
FILE* fp;

// Read a single line from the file "crt_getc.txt".

fopen_s(&fp, "D:\crt_getc.txt", "r");
if (!fp)
{
printf("Failed to open file crt_getc.txt.\n");
exit(1);
}

for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
&& (ch != '\n'); i++)
{
buffer[i] = (char) ch;
}

// Terminate string with a null character
buffer[i] = '\0';
printf( "Input was: %s\n", buffer);
fclose(fp);

}
运行结果:
Input was: dsfdsgfdhdshgjtreter
请按任意键继续. . .

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理