c語言get函數(shù)的用法有哪些
c語言get函數(shù)的用法有哪些
C語言中g(shù)ets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù),可以無限讀取,不會判斷上限,今天學(xué)習(xí)啦小編在這里為大家介紹C語言get函數(shù)的用法,歡迎大家閱讀!
c語言get函數(shù)的用法:int getc(FILE *stream)
從指定輸入流 stream 的當(dāng)前位置讀取一個(gè)字符,若讀到文件尾而無數(shù)據(jù)時(shí)便返回EOF。
main()
{
int c;
FILE *fp= fopen("d:\a.txt","r");
fpos_t p=4;
fsetpos(fp,&p);
c=getc(fp);
putchar(c);
}
文件內(nèi)容為:123456回車,輸出:5
c語言get函數(shù)的用法:int getchar(void)
getchar()從控制臺讀取一個(gè)字符,并回顯。當(dāng)程序調(diào)用getchar時(shí),程序就等著用戶按鍵。用戶輸入的字符被存放在鍵盤緩沖區(qū)中,直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。當(dāng)用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個(gè)字符。getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕。如用戶在按回車之前輸入了不只一個(gè)字符,其他字符會保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。也就是說,后續(xù)的getchar調(diào)用不會等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵。
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);
}
運(yùn)行結(jié)果分析:
(1)輸入123456回車,打印出49 50 51 52 53 54
(2)輸入12345回車,打印出49 50 51 52 53 10(10為'\n'的ASCII碼)
(3)輸入123回車,打印出49 50 51 ,程序執(zhí)行到 int ch5=getchar()等待輸入。再輸入456回車,打印出10 52 53
(4)輸入1回車,程序執(zhí)行到 int ch3=getchar()等待輸入。再輸入23456回車,打印出49 10 50 51 52 53
c語言get函數(shù)的用法:int getch(void)
從控制臺讀取一個(gè)字符,但不把該字符顯示在屏幕上,也就是不回顯。
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個(gè)鍵,getch就立刻返回,getch返回值是用戶輸入的ASCII碼,出錯(cuò)返回-1。輸入的字符不會回顯在屏幕上。getch函數(shù)常用于程序調(diào)試中,在調(diào)試時(shí),在關(guān)鍵位置顯示有關(guān)的結(jié)果以待查看,然后用getch函數(shù)暫停程序運(yùn)行,當(dāng)按任意鍵后程序繼續(xù)運(yùn)行。
c語言get函數(shù)的用法:int getche(void)
從控制臺讀取一個(gè)字符,把該字符顯示在屏幕上,也就是回顯。
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鍵,緩沖的輸入函數(shù) getchar 會把它當(dāng)'\n',而不緩沖的輸入函數(shù) getche 和getch 是把它當(dāng)'\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);
}
運(yùn)行結(jié)果分析:
(1)程序運(yùn)行后,首先打印 getchar:,等待輸入。此時(shí),按Enter鍵,由于getchar 將其當(dāng)作'\n'并且回顯,因此換行并打印'\n'的ASCII碼 10。
(2)然后,程序換行打印 getch:,并等待輸入。此時(shí),按Enter鍵,由于getch 將其當(dāng)作'\r'并且不回顯,因此不回車,而在后面接著打印'\r'的ASCII碼 13。
(2)接下來,程序換行打印 getche:,并等待輸入。此時(shí),按Enter鍵,由于getche 將其當(dāng)作'\r'并且回顯,因此回到本行開頭,打印'\r'的ASCII碼 13。
最后結(jié)果:
getchar:
10
getch:13
13
c語言get函數(shù)的用法:int fgetc(FILE * stream)
與getc()作用相同,但有幾點(diǎn)區(qū)別:
(1)getc(可以是)宏操作,fgetc(必須)是函數(shù)。
(2)fgetc()可以當(dāng)作其他函數(shù)的參數(shù),但是getc()不可以。
一般來講getc()速度比fgetc()快,因?yàn)楹瓴僮鞅群瘮?shù)操作快。
c語言get函數(shù)的用法:int fgetchar(void)
與getchar()作用相同。兩者區(qū)別可參考 fgetc 和 fgetc 之間的區(qū)別。
c語言get函數(shù)的用法:char *gets(char *buffer)
從stdin流中讀取字符串,直至接受到換行符或EOF時(shí)停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為null值,并由此來結(jié)束字符串。
c語言get函數(shù)的用法:char *fgets(char *str, int n, FILE *stream)
函數(shù)的功能是從stream所指流中讀入n-1個(gè)字符放入str為起始地址的空間內(nèi);如果在未讀滿n-1個(gè)字符之時(shí),已讀到一個(gè)換行符或一個(gè)EOF(文件結(jié)束標(biāo)志),則結(jié)束本次讀操作,讀入的字符串中最后包含讀到的換行符。因此,確切地說,調(diào)用fgets函數(shù)時(shí),最多只能讀入n-1個(gè)字符。讀入結(jié)束后,系統(tǒng)將自動在最后加'
c語言get函數(shù)的用法有哪些
c語言get函數(shù)的用法有哪些
C語言中g(shù)ets從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù),可以無限讀取,不會判斷上限,今天學(xué)習(xí)啦小編在這里為大家介紹C語言get函數(shù)的用法,歡迎大家閱讀!
c語言get函數(shù)的用法:int getc(FILE *stream)
從指定輸入流 stream 的當(dāng)前位置讀取一個(gè)字符,若讀到文件尾而無數(shù)據(jù)時(shí)便返回EOF。
main()
{
int c;
FILE *fp= fopen("d:\\a.txt","r");
fpos_t p=4;
fsetpos(fp,&p);
c=getc(fp);
putchar(c);
}
文件內(nèi)容為:123456回車,輸出:5
c語言get函數(shù)的用法:int getchar(void)
getchar()從控制臺讀取一個(gè)字符,并回顯。當(dāng)程序調(diào)用getchar時(shí),程序就等著用戶按鍵。用戶輸入的字符被存放在鍵盤緩沖區(qū)中,直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。當(dāng)用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個(gè)字符。getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕。如用戶在按回車之前輸入了不只一個(gè)字符,其他字符會保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。也就是說,后續(xù)的getchar調(diào)用不會等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵。
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);
}
運(yùn)行結(jié)果分析:
(1)輸入123456回車,打印出49 50 51 52 53 54
(2)輸入12345回車,打印出49 50 51 52 53 10(10為'\n'的ASCII碼)
(3)輸入123回車,打印出49 50 51 ,程序執(zhí)行到 int ch5=getchar()等待輸入。再輸入456回車,打印出10 52 53
(4)輸入1回車,程序執(zhí)行到 int ch3=getchar()等待輸入。再輸入23456回車,打印出49 10 50 51 52 53
c語言get函數(shù)的用法:int getch(void)
從控制臺讀取一個(gè)字符,但不把該字符顯示在屏幕上,也就是不回顯。
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個(gè)鍵,getch就立刻返回,getch返回值是用戶輸入的ASCII碼,出錯(cuò)返回-1。輸入的字符不會回顯在屏幕上。getch函數(shù)常用于程序調(diào)試中,在調(diào)試時(shí),在關(guān)鍵位置顯示有關(guān)的結(jié)果以待查看,然后用getch函數(shù)暫停程序運(yùn)行,當(dāng)按任意鍵后程序繼續(xù)運(yùn)行。
c語言get函數(shù)的用法:int getche(void)
從控制臺讀取一個(gè)字符,把該字符顯示在屏幕上,也就是回顯。
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鍵,緩沖的輸入函數(shù) getchar 會把它當(dāng)'\n',而不緩沖的輸入函數(shù) getche 和getch 是把它當(dāng)'\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);
}
運(yùn)行結(jié)果分析:
(1)程序運(yùn)行后,首先打印 getchar:,等待輸入。此時(shí),按Enter鍵,由于getchar 將其當(dāng)作'\n'并且回顯,因此換行并打印'\n'的ASCII碼 10。
(2)然后,程序換行打印 getch:,并等待輸入。此時(shí),按Enter鍵,由于getch 將其當(dāng)作'\r'并且不回顯,因此不回車,而在后面接著打印'\r'的ASCII碼 13。
(2)接下來,程序換行打印 getche:,并等待輸入。此時(shí),按Enter鍵,由于getche 將其當(dāng)作'\r'并且回顯,因此回到本行開頭,打印'\r'的ASCII碼 13。
最后結(jié)果:
getchar:
10
getch:13
13
c語言get函數(shù)的用法:int fgetc(FILE * stream)
與getc()作用相同,但有幾點(diǎn)區(qū)別:
(1)getc(可以是)宏操作,fgetc(必須)是函數(shù)。
(2)fgetc()可以當(dāng)作其他函數(shù)的參數(shù),但是getc()不可以。
一般來講getc()速度比fgetc()快,因?yàn)楹瓴僮鞅群瘮?shù)操作快。
c語言get函數(shù)的用法:int fgetchar(void)
與getchar()作用相同。兩者區(qū)別可參考 fgetc 和 fgetc 之間的區(qū)別。
c語言get函數(shù)的用法:char *gets(char *buffer)
從stdin流中讀取字符串,直至接受到換行符或EOF時(shí)停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為null值,并由此來結(jié)束字符串。
c語言get函數(shù)的用法:char *fgets(char *str, int n, FILE *stream)
函數(shù)的功能是從stream所指流中讀入n-1個(gè)字符放入str為起始地址的空間內(nèi);如果在未讀滿n-1個(gè)字符之時(shí),已讀到一個(gè)換行符或一個(gè)EOF(文件結(jié)束標(biāo)志),則結(jié)束本次讀操作,讀入的字符串中最后包含讀到的換行符。因此,確切地說,調(diào)用fgets函數(shù)時(shí),最多只能讀入n-1個(gè)字符。讀入結(jié)束后,系統(tǒng)將自動在最后加'\0',并以str作為函數(shù)值返回。
比較 gets 和 fgets 的區(qū)別:
main()
{
char a[50];
char b[50];
gets(a);
fgets(b,20,stdin);
printf("%s",a);
printf("%s",b);
}
輸入:1111
2222
輸出:11112222
猜你喜歡:
比較 gets 和 fgets 的區(qū)別:
main()
{
char a[50];
char b[50];
gets(a);
fgets(b,20,stdin);
printf("%s",a);
printf("%s",b);
}
輸入:1111
2222
輸出:11112222
猜你喜歡: