當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 Getchar()用法及代碼示例


在本節中,我們將學習 C 編程語言中的 getchar() 函數。 getchar() 函數是一個非標準函數,其含義已在 stdin.h 頭文件中定義,以接受來自用戶的單個輸入。換句話說,是 C 庫函數從標準輸入中獲取單個字符(無符號字符)。但是,getchar() 函數與 getc() 函數類似,但與 C 編程語言的 getchar() 和 getc() 函數之間存在細微差別。 getchar() 從標準輸入讀取單個字符,而 getc() 從任何輸入流讀取單個字符。

Getchar() function in C

用法

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 按鈕退出循環。





相關用法


注:本文由純淨天空篩選整理自 Getchar() function in C。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。