国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器

這篇具有很好參考價值的文章主要介紹了【C語言】getchar和putchar函數詳解:字符輸入輸出的利器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

??getchar函數

???函數原型:

???目的:

???返回值:

???用法:

??putchar函數

???函數原型:

???目的:

???參數:

???返回值:

??用法:

??實例

???輸入密碼并確認流程

??總結


getchar putchar 是兩個標準 C 庫函數,用于 C 編程中的輸入和輸出操作。它們是簡單且常用的函數,用于逐個處理字符。以下是對每個函數的詳細解釋:

兩者的頭文件都是:<stdio.h>

??getchar函數

???函數原型:

int getchar(void);

???目的:

getchar 從標準輸入(通常是鍵盤)讀取一個字符,并返回其 ASCII 值(作為整數)。getchar?讀取輸入緩沖區(qū)中的下一個字符,并在讀取成功后將其從緩沖區(qū)中刪除。

???返回值:

int 類型返回所讀取的字符的 ASCII 值。如果發(fā)生錯誤或達到輸入的末尾(例如從文件中讀取時),getchar 返回特殊值 EOF(End-Of-File),通常定義為 -1通過這里可以看出getchar的返回類型必須要是int型才能匹配此處的-1)

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言

???用法:

在調用getchar()函數時,它會等待用戶在終端輸入一個字符。一旦用戶輸入一個字符,并按下回車鍵,getchar()函數會讀取該字符并返回其ASCII碼。如果讀取失敗或到達文件末尾(EOF),則返回特殊值EOF(通常表示為-1)。

代碼展示:?

#include <stdio.h>

int main() {
    int ch;
    printf("請輸入一個字符:");
    ch = getchar(); // 從標準輸入讀取一個字符ASCII碼值放到實際變量ch
    printf("您輸入的字符是:");
    putchar(ch); //putchar接收到一個參數(ASCII碼值),將字符輸出到標準輸出
    return 0;
}

運行結果:?

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言

??putchar函數

???函數原型:

int putchar(int character);

???目的:

putchar 將一個字符輸出到標準輸出(通常是控制臺)。

???參數:

character要輸出的字符。它以 int 類型傳遞,但只使用最低有效的 8 位,因此實際上被視為 char 類型處理。

???返回值:

將寫入的字符作為 unsigned char 類型返回,如果發(fā)生錯誤,則返回 EOF。

??用法:

可以使用 putchar 在控制臺(屏幕)上顯示字符。

代碼展示:

#include <stdio.h>

int main() {
    char ch = 'A';
    printf("顯示一個字符:");
    putchar(ch); //putchar接收到一個參數(ASCII碼值),將字符輸出到標準輸出
    return 0;
}

運行結果:

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言

下面我們通過一個實例來深入了解getchar和putchar的工作原理。

??實例

???輸入密碼并確認流程

實例描述:要求輸入一串密碼后,再次輸入一個字符 ‘ Y ’ 或 ‘ N ’來確認密碼的輸入,若輸入‘? Y ’,則確認成功;若輸入 ‘ N ’,則確認失敗。

不足代碼展示:?

#include<stdio.h>

int main()
{
	char password[20];
	printf("請輸入密碼:>");
	scanf("%s", password);//數組名就是首地址
	printf("請確認(Y/N):");
	int ch = getchar();
	if ('Y' == ch)
	{
		printf("確認成功\n");
	}
	else
	{
		printf("確認失敗\n");
	}
	return 0;
}

結果演示:?

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言???這里我們會發(fā)現在我們輸入密碼后,屏幕直接顯示出確認失敗,那么這是什么原因呢?下面我將為你解答。?

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言

scanf和getchar在讀取數據時是從緩沖區(qū)內讀取數據,而緩沖區(qū)位于鍵盤和scanf、getchar之間,在我們通過鍵盤輸入abcdef密碼并敲下回車鍵時,數據被送到了緩沖區(qū),這時scanf讀取字符串abcdef,所以此時只剩下 \n 在緩沖區(qū)內,所以getchar就會讀取緩沖區(qū)內的 \n ,則ch= '?\n ',因此會直接打印確認失敗。

為了避免這種情況,我們需要在scanf獲取完abcdef后緩沖區(qū)內為空,所以這個時候需要做的就是清空緩沖區(qū),這時我們可以在scanf讀取完abcdef后立刻調用getchar函數將 ' \n '讀走。但是值得注意的是:scanf讀取字符串時遇到空格就不再讀取,所以當輸入的密碼換了一種形式,比如在正確密碼后加了空格和其他字符時,scanf讀取了正確密碼,但緩沖區(qū)內還有空格和其他字符以及最后的'\n'字符,所以這里我們需要通過循環(huán)來清空緩沖區(qū)。

完善代碼展示:?

#include<stdio.h>

int main()
{
	char password[20];

	printf("請輸入密碼:>");
	//scanf讀取字符串時遇到空格就不再讀取
	scanf("%s", password);//數組名就是首地址

	int temp = 0;
	while ((temp=getchar()) != '\n')//讀取'\n',清空緩沖區(qū)
	{
		;
	}
	printf("請確認(Y/N):");
    int ch = getchar();
	if ('Y' == ch)
	{
		printf("確認成功\n");
	}
	else
	{
		printf("確認失敗\n");
	}
	return 0;
}

結果演示:?

【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言

注意:這里的密碼還是abcdef,后面的 '? wwww'并沒有被scanf讀取,而是留在了緩沖區(qū)。

??總結

getcharputchar 是基本函數,僅用于處理單個字符。如果需要處理字符串,可以結合循環(huán)使用這兩個函數來逐個讀取和寫入字符。對于更復雜的輸入輸出操作,應該使用 scanfprintf 等函數,以便處理格式化的輸入和輸出。

??今天的分享就到這里,如果覺得博主的文章還不錯的話,請??三連支持一下博主哦??

?【C語言】getchar和putchar函數詳解:字符輸入輸出的利器,C語言—探索高效編程的基石,c語言,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-594498.html

到了這里,關于【C語言】getchar和putchar函數詳解:字符輸入輸出的利器的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C getchar & putchar函數

    C getchar & putchar函數

    目錄 前言 1.getchar()函數 2.putchar()函數 3.清空緩沖區(qū) 3.1? ?緩沖區(qū) 3.2? ?場景 3.3? ?問題分析? 3.4? ?改進(即清空緩沖區(qū)) C語言的字符輸入函數getchar和輸出函數putchar功能介紹,以及緩沖區(qū)的簡單認識。 1. int getchar(void)? 函數從屏幕讀取下一個可用的字符,并把它返回為一個

    2024年02月12日
    瀏覽(18)
  • getchar與putchar在C語言中的作用

    getchar與putchar在C語言中的作用

    代替了scanf 和 printf 的輸入輸出 字符 的功能 代碼并沒有寫入? n? ,但是結果出現了自動換行的結果,這是為什么呢? 代碼可以運行,但是無法確認,getchar無法正常工作,原因是什么呢? 1.原因分析? ? scanf不會取 n,一旦有空格,scanf的工作就立即停止了 3.情景分析 此時說

    2024年02月08日
    瀏覽(16)
  • C語言:寫一個函數,求字符串的長度,在main函數中輸入字符串并輸出其長度(指針)

    C語言:寫一個函數,求字符串的長度,在main函數中輸入字符串并輸出其長度(指針)

    分析: ? ?在程序中,定義一個函數 fix,該函數使用指針變量來訪問字符串中的每個字符,并計算出字符串的長度。fix 函數的參數為指向 char 類型的指針變量 p,表示需要計算長度的字符串。 ? 在主函數 main 中,定義一個大小為 20 的字符數組 a,用于存儲輸入的字符串。然

    2024年01月21日
    瀏覽(106)
  • 愛上C語言:scanf、gets以及getchar輸入字符串你真的懂了嗎

    愛上C語言:scanf、gets以及getchar輸入字符串你真的懂了嗎

    ?? 作者:阿輝不一般 ?? 你說呢: 不服輸的你,他們拿什么贏 ?? 專欄:愛上C語言 ?? 作圖工具:draw.io ( 免費開源的作圖網站) 如果覺得文章對你有幫助的話,還請點贊,關注,收藏支持博主,如有不足還請指點,博主及時改正,感謝大家支持?。?! 大家好啊??!今天阿

    2024年02月05日
    瀏覽(33)
  • C語言中getchar()函數的詳解

    C語言中getchar()函數的詳解

    getchar() 函數顧名思義就是獲取一個字符,那么他從何處獲取,返回值類型又是什么讓我們在MSDN中找尋答案 我們可以看到 getchar() 函數的作用是從stdin(標準輸入——鍵盤)獲取字符,他的返回值類型是 int ,那我們不禁要問了,為什么 getchar() 讀取的是一個字符而返回的卻是

    2024年02月08日
    瀏覽(22)
  • getchar函數詳解看這一篇就夠了-C語言(函數功能、使用、返回值)

    getchar函數詳解看這一篇就夠了-C語言(函數功能、使用、返回值)

    首先要明確getchar的功能是:從計算機終端(一般是鍵盤)輸入一個字符,其值就是輸入得到的字符。 目錄 getchar函數簡介 getchar函數執(zhí)行過程詳解(配圖) ?getchar用法示例 解釋一下:while ((ch=getchar()) != \\\'EOF\\\') 函數原型:int getchar(void);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回

    2024年02月07日
    瀏覽(17)
  • 從字符輸入到輸出——C語言中的字符輸入輸出

    字符是C語言中的一個重要數據類型,而字符的輸入輸出又是程序中不可缺少的一部分。本文將詳細介紹C語言中字符輸入輸出,包括字符輸入輸出函數的使用、樣例程序解析、以及相關的注意事項。 在C語言中,scanf_s函數是一個常用的字符輸入函數。其格式如下: 這里的%c表

    2024年02月05日
    瀏覽(21)
  • C語言字符和字符串的輸入與輸出

    C語言字符和字符串的輸入與輸出

    1、scanf函數輸入單個字符 C語言scanf輸入時緩沖區(qū)問題 scanf函數是標準輸入流(從鍵盤接收數據),接收的數據放入輸入緩沖區(qū)中,其中就包括在鍵盤輸入的空格、回車這類字符,當你用%d接收時是不會影響的,但是用%c就會產生錯誤,這是因為在\\\"%c\\\"輸入時,空格和轉義字符均作

    2023年04月09日
    瀏覽(96)
  • C語言-字符串與輸入輸出

    C語言-字符串與輸入輸出

    在 C 語言中,字符串實際上是使用空字符 \\0 結尾的一維字符數組。因此,\\0 是用于標記字符串的結束。 空字符(Null character)又稱結束符,縮寫 NUL,是一個數值為 0 的控制字符,\\0 是轉義字符,意思是告訴編譯器,這不是字符 0,而是空字符。 比如:下面聲明和初始化創(chuàng)建

    2024年02月02日
    瀏覽(94)
  • 字符輸入輸出 C語言xdoj16

    字符輸入輸出 C語言xdoj16

    問題描述: 通過鍵盤輸入5個大寫字母,輸出其對應的小寫字母,并在末尾加上“!”。 輸入說明: 5個大寫字母通過鍵盤輸入,字母之間以豎線“|”分隔。 輸出說明: 輸出5個大寫字母對應的小寫字母,之間無分隔,并在末尾加上‘!’。 輸入樣例: H|E|L|L|O 輸出樣例:

    2024年02月02日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包