c语⾔get()的作⽤,c语⾔get函数的⽤法有哪些
C语⾔中gets从标准输⼊设备读字符串函数,可以⽆限读取,不会判断上限,今天店铺在这⾥为⼤家介绍C语⾔get函数的⽤法,欢迎⼤家阅读!
c语⾔get函数的⽤法:int getc(FILE *stream)
从指定输⼊流 stream 的当前位置读取⼀个字符,若读到⽂件尾⽽⽆数据时便返回EOF。
main()
{
int c;
FILE *fp= fopen("d:\\a.txt","r");
fpos_t p=4;
fsetpos(fp,&p);
c=getc(fp);
putchar(c);
}
⽂件内容为:123456回车,输出:5
c语⾔get函数的⽤法:int getchar(void)
getchar()从控制台读取⼀个字符,并回显。当程序调⽤getchar时,程序就等着⽤户按键。⽤户输⼊的字符被存放在键盘缓冲区中,直到⽤户按回车为⽌(回车字符也放在缓冲区中)。当⽤户键⼊回车之后,getchar才开始从stdio流中每次读⼊⼀个字符。getchar函数的返回值是⽤户输⼊的第⼀个字符的ASCII码,如出错返回-1,且将⽤户输⼊的字符回显到屏幕。如⽤户在按回车之前输⼊了不只⼀个字符,其他字符会保留在键盘缓存区中,等待后续getchar调⽤读取。也就是说,后续的getchar调⽤不会等待⽤户按键,⽽直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待⽤户按键。
int main(void)
{
int ch1=getchar();
int ch2=getchar();
int ch3=getchar();
printf("%d %d %d ",ch1,ch2,ch3);
int ch4=getchar();
int ch5=getchar();
int ch6=getchar();
printf("%d %d %d ",ch4,ch5,ch6);
}
运⾏结果分析:
(1)输⼊123456回车,打印出49 50 51 52 53 54
(2)输⼊12345回车,打印出49 50 51 52 53 10(10为'\n'的ASCII码)
(3)输⼊123回车,打印出49 50 51 ,程序执⾏到 int ch5=getchar()等待输⼊。再输⼊456回车,打印出10 52 53
(4)输⼊1回车,程序执⾏到 int ch3=getchar()等待输⼊。再输⼊23456回车,打印出49 10 50 51 52 53
c语⾔get函数的⽤法:int getch(void)
从控制台读取⼀个字符,但不把该字符显⽰在屏幕上,也就是不回显。
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待⽤户按回车,只要⽤户按⼀个键,getch就⽴刻返回,getch返回值是⽤户输⼊的ASCII码,出错返回-1。输⼊的字符不会回显在屏幕上。getch函数常⽤于程序调试中,在调试时,在关键位置显⽰有关的结果以待查看,然后⽤getch函数暂停程序运⾏,当按任意键后程序继续运⾏。
c语⾔get函数的⽤法:int getche(void)
从控制台读取⼀个字符,把该字符显⽰在屏幕上,也就是回显。
getche()和getch()很相似,不同之处就在于getch()⽆返回显⽰,getche()有返回显⽰。
main()
{
int c;
printf("getchar:");
c=getchar();//缓冲,回显
printf("%c\n",c);
printf("getch:");
c=getch();//不缓冲,不回显
printf("%c\n",c);
printf("getche:");
c=getche();//不缓冲,回显
printf("%c\n",c);
}
特别注意:如果输⼊的是Enter键,缓冲的输⼊函数 getchar 会把它当'\n',⽽不缓冲的输⼊函数 getche 和getch 是把它当'\r'。
main()
{
int c;
printf("getchar:");
c=getchar();//缓冲,回显
printf("%d",c);
printf("\ngetch:");
c=getch();//不缓冲,不回显
printf("%d",c);
printf("\ngetche:");
c=getche();//不缓冲,回显
printf("%d",c);
运⾏结果分析:
(1)程序运⾏后,⾸先打印 getchar:,等待输⼊。此时,按Enter键,由于getchar 将其当作'\n'并且回显,因此换⾏并打印'\n'的ASCII码10。
(2)然后,程序换⾏打印 getch:,并等待输⼊。此时,按Enter键,由于getch 将其当作'\r'并且不回显,因此不回车,⽽在后⾯接着打
印'\r'的ASCII码 13。
c语言char的用法(2)接下来,程序换⾏打印 getche:,并等待输⼊。此时,按Enter键,由于getche 将其当作'\r'并且回显,因此回到本⾏开头,打印'\r'的ASCII码 13。
最后结果:
getchar:
10
getch:13
13
c语⾔get函数的⽤法:int fgetc(FILE * stream)
与getc()作⽤相同,但有⼏点区别:
(1)getc(可以是)宏操作,fgetc(必须)是函数。
(2)fgetc()可以当作其他函数的参数,但是getc()不可以。
⼀般来讲getc()速度⽐fgetc()快,因为宏操作⽐函数操作快。
c语⾔get函数的⽤法:int fgetchar(void)
与getchar()作⽤相同。两者区别可参考 fgetc 和 fgetc 之间的区别。
c语⾔get函数的⽤法:char *gets(char *buffer)
从stdin流中读取字符串,直⾄接受到换⾏符或EOF时停⽌,并将读取的结果存放在buffer指针所指向的字符数组中。换⾏符不作为读取串的内容,读取的换⾏符被转换为null值,并由此来结束字符串。
c语⾔get函数的⽤法:char *fgets(char *str, int n, FILE *stream)
函数的功能是从stream所指流中读⼊n-1个字符放⼊str为起始地址的空间内;如果在未读满n-1个字符之时,已读到⼀个换⾏符或⼀个
EOF(⽂件结束标志),则结束本次读操作,读⼊的字符串中最后包含读到的换⾏符。因此,确切地说,调⽤fgets函数时,最多只能读⼊n-1个字符。读⼊结束后,系统将⾃动在最后加'\0',并以str作为函数值返回。
⽐较 gets 和 fgets 的区别:
main()
{
char a[50];
char b[50];
gets(a);
fgets(b,20,stdin);
printf("%s",a);
printf("%s",b);
输⼊:1111
2222
输出:11112222猜你喜欢:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论