<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          5大C語(yǔ)言輸入函數(shù)知多少?

          共 1518字,需瀏覽 4分鐘

           ·

          2020-12-29 02:49

          前言

          上章節(jié)講解了《C語(yǔ)言四大內(nèi)置輸出函數(shù)你知多少?C語(yǔ)言基本程序交互之輸出到屏幕》,本欄目主要講解C語(yǔ)言基本交互處理之輸入篇。學(xué)會(huì)基本的輸入和輸出,大家就可以做一些簡(jiǎn)單的交互咯。

          C語(yǔ)言內(nèi)置輸入函數(shù)

          C語(yǔ)言提供了執(zhí)行輸入操作的內(nèi)置函數(shù)。輸入操作用于從鍵盤(pán)讀取用戶值(輸入)。c語(yǔ)言提供以下內(nèi)置輸入功能:

          1. scanf():標(biāo)準(zhǔn)輸入

          2. getchar():字符輸入

          3. getch():不可見(jiàn),字符輸入

          4. gets():字符串輸入

          5. fscanf():格式化寫(xiě)入

          C語(yǔ)言scanf函數(shù)

          scanf函數(shù)三要素:

          • scanf用于從鍵盤(pán)讀取不同數(shù)據(jù)類型的多個(gè)數(shù)據(jù)值。

          • scanf需屬于“ stdio.h ” 的頭文件

          • scanf使用#include包含頭文件

          1

          scanf讀取數(shù)據(jù)到變量

          值得一提的是:vs中對(duì)這個(gè)函數(shù)做了一些修改,推薦使用更為安全的scanf_s 函數(shù)?

          不想用在程序最上面加上宏定義去掉安全檢查。

          即:#define _CRT_SECURE_NO_WARNINGS

          或者修改項(xiàng)目屬性去掉SDL檢查

          當(dāng)然你也可以使用他改進(jìn)后的scanf函數(shù),也就是scanf_s

          2

          scanf同時(shí)輸入不同數(shù)據(jù)

          scanf輸入不同數(shù)據(jù)的時(shí)候,采用不同的格式控制字符即可。注意的是通常scanf函數(shù)的格式控制字符是不需要精度控制的哦。如下測(cè)試代碼:

          C語(yǔ)言中格式控制字符常用的主要有以下:

          1. int : %d

          2. float: %f

          3. double:%lf

          4. char:%c

          5. 字符串:%s

          6. 十六進(jìn)制:%x

          7. 八進(jìn)制:%o

          8. 指針類型:%p

          9. 無(wú)符號(hào)整形:%u

          還有一些比較少用的在這里就不列舉不出來(lái)。

          3

          scanf函數(shù)的返回值

          scanf函數(shù)返回一個(gè)整數(shù)值,該值等于使用scanf函數(shù)讀取的輸入值的總數(shù),如下測(cè)試代碼:

          4
          scanf函數(shù)的取值原理圖

          從上圖中的可以看到,當(dāng)我們做一次完整輸入的時(shí)候, 緩沖區(qū)中還存在一個(gè)\n字符 ,所以我們?cè)僮鲎址斎氲臅r(shí)候經(jīng)常存在跳過(guò)現(xiàn)象如下圖:

          如何避免呢?清空緩沖區(qū)就好了,在字符或者字符輸入之前清空緩沖區(qū)就好了,一般有以下函數(shù):

          1. setbuf(stdin,NULL);

          2. fflush(stdin);

          當(dāng)然你也可以自己寫(xiě)代碼避免,如下測(cè)試代碼:

          gechar函數(shù)

          getchar函數(shù)用于從鍵盤(pán)讀取字符并將其返回給程序。此功能用于只讀單個(gè)字符。要讀取多個(gè)字符,我們需要多次寫(xiě)入或使用循環(huán)語(yǔ)句??紤]以下示例:

          getc函數(shù)

          getch函數(shù)類似于getchar函數(shù)。getch函數(shù)用于從鍵盤(pán)讀取字符并將其返回給程序。此功能用于只讀單個(gè)字符。要讀取多個(gè)字符,我們需要多次寫(xiě)入或使用循環(huán)語(yǔ)句??紤]以下示例程序:

          注意點(diǎn):

          • getch屬于conio.h,即用前需#include

          • vs中該函數(shù)要使用_getch

          gets函數(shù)

          gets函數(shù)用于讀取一行字符串并將其存儲(chǔ)到字符數(shù)組中。gets函數(shù)讀取一行字符串或字符序列,直到換行符號(hào)進(jìn)入??紤]以下示例程序:

          注意點(diǎn):

          • vs中該函數(shù)該函數(shù)改為gets_s ,增加一個(gè)長(zhǎng)度參數(shù)

          上圖代碼中數(shù)組如果沒(méi)有學(xué)習(xí)的同學(xué)后續(xù)文章將會(huì)詳細(xì)講解。

          fscanf函數(shù)

          fscanf函數(shù)與文件的概念一起使用。fscanf函數(shù)用于從文件中讀取數(shù)據(jù)值。如果要使用fscanf函數(shù),必須在讀取模式下打開(kāi)文件,而鍵盤(pán)上可以使用stdin表示。故有以下案例:

          這個(gè)更多的是格式化讀寫(xiě)文件,后續(xù)章節(jié)會(huì)詳細(xì)講解

          尾言

          本欄目作業(yè):從鍵盤(pán)鍵入長(zhǎng)方形的邊信息,求解長(zhǎng)方形的面積和周長(zhǎng),打印出面積和周長(zhǎng)



          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷丁香网站 | 国产三级片91 | 五月天电影三级片 | 夜色五月丁香久久 | 亚洲天堂色 |