在本節中,我們將學習 C 編程語言中的 getchar() 函數。 getchar() 函數是一個非標準函數,其含義已在 stdin.h 頭文件中定義,以接受來自用戶的單個輸入。換句話說,是 C 庫函數從標準輸入中獲取單個字符(無符號字符)。但是,getchar() 函數與 getc() 函數類似,但與 C 編程語言的 getchar() 和 getc() 函數之間存在細微差別。 getchar() 從標準輸入讀取單個字符,而 getc() 從任何輸入流讀取單個字符。
用法
int getchar (void);
它沒有任何參數。但是,它將讀取的字符作為 int 中的 unsigned char 返回,如果文件有錯誤,則返回文件末尾的 EOF。
現在我們編寫幾個getchar()函數程序來接受C中的單個字符並使用putchar()函數打印它們。
使用 getchar() 函數讀取單個字符
讓我們考慮一個使用 C 語言中的 getchar() 函數來獲取單曲的程序。
程序.c
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
printf ("\n Enter a character \n");
c = getchar(); // get a single character
printf(" You have passed ");
putchar(c); // print a single character using putchar
getch();
}
輸出
Enter a character A You have passed A
正如我們在上麵的程序中看到的那樣,它在運行時使用 getchar() 函數從用戶那裏獲取單個字符。得到字符後,通過putchar()函數打印字母。
使用 getchar() 函數從用戶讀取 n 個字符
讓我們考慮使用 C 中的 getchar() 函數讀取 n 個字符的程序。
獲取字符
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int main()
{
char ch;
printf (" Enter a character ( If we want to exit press #) \n");
while (ch != '#') /* accept the number till the user does not enter the # to exit from the loop. */
{
ch = getchar();
printf (" \n We have entered the character:");
putchar (ch); // print a single character
printf ("\n");
}
return 0;
}
輸出
Enter a character ( If we want to exit.. press #) A We have entered the character:A We have entered the character: B We have entered the character:B We have entered the character: C We have entered the character:C We have entered the character:
正如我們在上麵的輸出中看到的,while 循環不斷地從用戶那裏接受一個字符,直到用戶沒有傳遞 # 字符。這裏 getchar() 函數從標準輸入中獲取單個字符並將它們分配給 ch 變量。而 putchar() 函數打印讀取的字符。
使用 scanf() 函數讀取單個字符
讓我們考慮一個使用 C 中的 scanf() 庫函數讀取字符的程序。
程序
#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
printf ("\n Enter the character \n");
scanf ("%c", &ch); // get a single character, numeric or words
printf( " You have entered %c", ch); /* It print a single character or first letter of the words. */
return 0;
}
輸出
Enter the character A You have entered A
我們可以看到,當我們執行上述程序時,它使用 scanf() 庫函數而不是 getchar() 函數來獲取單個字符或一組字符。但有一個小的區別; scanf() 函數可以從用戶處獲取單個或一組字符,而 getchar() 函數隻能接受單個字符。
這裏我們再次執行上麵的程序,這一次,它顯示了下麵的結果。
Enter the character
Apple
You have entered A
使用 do-while 循環讀取字符
讓我們考慮使用 C 中的 do while 和 getchar() 函數讀取字符的程序。
Dowhile1.c
#include <stdio.h>
#include <ctype.h>
int main()
{
int ch, i = 0;
char str[150];
printf (" Enter the characters from the keyboard (Press Enter button to stop).\n");
// use do while loop to define the condition
do
{
ch = getchar(); // takes character, number, etc from the user
str[i] = ch; // store the ch into str[i]
i++; // increment loop by 1
} while (ch != '\n'); // ch is not equal to '\n'
printf("Entered characters are %s ", str);
return 0;
}
輸出
Enter the characters from the keyboard (Press Enter button to stop). Well b47gvb come Entered characters are Well b47gvb come
在上麵的程序中,一個 do-while 循環不斷地接受字符,直到用戶通過 ENTER 按鈕退出循環。
相關用法
- C語言 fread()用法及代碼示例
- C語言 feof()用法及代碼示例
- C語言 imagesize()用法及代碼示例
- C語言 getarcoords()用法及代碼示例
- C語言 strcspn()用法及代碼示例
- C語言 setlinestyle()用法及代碼示例
- C語言 showbits()用法及代碼示例
- C語言 sprintf()用法及代碼示例
- C語言 outtextxy()用法及代碼示例
- C語言 isgraph()用法及代碼示例
- C語言 grapherrormsg()用法及代碼示例
- C語言 moveto()用法及代碼示例
- C語言 putchar()用法及代碼示例
- C語言 tmpnam()用法及代碼示例
- C語言 putpixel()用法及代碼示例
- C語言 fillellipse()用法及代碼示例
- C語言 outtext()用法及代碼示例
- C語言 atan2()用法及代碼示例
- C語言 isprint()用法及代碼示例
- C語言 getchar()用法及代碼示例
注:本文由純淨天空篩選整理自 Getchar() function in C。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。