日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言输入字符时控制符%c前加空格的原因解释

發(fā)布時(shí)間:2025/3/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言输入字符时控制符%c前加空格的原因解释 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、前景知識(shí)
    • 1、緩沖區(qū)
    • 2、標(biāo)準(zhǔn)輸入流
  • 二、scanf語句的執(zhí)行
    • 1、scanf對于整形%d的輸入
    • 2、scanf對于字符%c的輸入

?? 在編一個(gè)代碼時(shí)偶然間發(fā)現(xiàn)一個(gè)知識(shí)盲點(diǎn)…用scanf語句輸入字符時(shí)需要在控制符%c前加空格。

?? 在解釋相關(guān)這個(gè)原因前我們需要了解幾個(gè)相關(guān)知識(shí)點(diǎn)。

一、前景知識(shí)


1、緩沖區(qū)

?? 緩沖區(qū)又稱緩存,是內(nèi)存的一部分。內(nèi)存空間中預(yù)留了一定的內(nèi)存空間,用于緩沖輸入或輸出的數(shù)據(jù)。因?yàn)橛?jì)算機(jī)對緩沖區(qū)的操作大大快于磁盤的操作,因此可以提升計(jì)算機(jī)的運(yùn)行速度。


2、標(biāo)準(zhǔn)輸入流

?? 在c語言中,在程序開始運(yùn)行時(shí),系統(tǒng)會(huì)自動(dòng)的打開標(biāo)準(zhǔn)輸入的標(biāo)準(zhǔn)文件,它與終端相聯(lián)系。系統(tǒng)會(huì)定義一個(gè)文件指針stdin即標(biāo)準(zhǔn)輸入流,來指向終端輸入。而scanf語句就是從標(biāo)準(zhǔn)輸入流中獲取數(shù)據(jù)。


二、scanf語句的執(zhí)行


1、scanf對于整形%d的輸入

#include <stdio.h> int main (void) {int a;scanf("%d",&a);while(a != 0){printf("%d",a);scanf("%d",&a)}return 0; }

?? 對于上述的簡單代碼中,當(dāng)我們執(zhí)行到scanf語句時(shí),我們會(huì)輸入一個(gè)整形數(shù)字,這個(gè)數(shù)字會(huì)存放到緩存區(qū),當(dāng)我們以回車結(jié)束時(shí),會(huì)把數(shù)據(jù)與換行符"\n"一起傳送到標(biāo)準(zhǔn)輸入流中。
?? 對于整形控制符%d作用下的scanf語句,它會(huì)從標(biāo)準(zhǔn)流輸入中查找數(shù)據(jù),跳過空白符(空格、換行符、制表符),直到遇到數(shù)字,則開始讀入。


2、scanf對于字符%c的輸入

?? 上述控制符%d的輸入準(zhǔn)則與控制符%c中有所不同,所以相應(yīng)的代碼也就需要作出改變。

#include <stdio.h> int main (void) {int a;printf("Do you want to input?(Y/N)")scanf(" %c",&a);while(a == 'Y' || a == 'y' ){printf("Do you want to continue?(Y/N)");scanf(" %c",&a)}return 0; }

?? 在上述代碼中我們需要在scanf語句中的%c前面加一個(gè)空格。如果沒有加的話在我們輸入第一個(gè)字符并以空格結(jié)束輸入后,該字符與’\n’會(huì)一起進(jìn)入標(biāo)準(zhǔn)流輸入,’\n’便會(huì)作為第二個(gè)scanf語句的內(nèi)容輸入,從而讓你的程序出現(xiàn)問題。
?? 而加空格便會(huì)屏蔽空白字符。
?? %c前沒空格,scanf()將讀取標(biāo)準(zhǔn)輸入流中的第一個(gè)字符,%c前有空格,scanf()則讀取標(biāo)準(zhǔn)輸入流中第一個(gè)非空白字符。


創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的c语言输入字符时控制符%c前加空格的原因解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。