0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言基礎(chǔ)知識(shí)(2)--標(biāo)準(zhǔn)輸入輸出

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2023-06-12 14:21 ? 次閱讀

1.標(biāo)準(zhǔn)輸出printf

printf是C語(yǔ)言的標(biāo)準(zhǔn)輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息

函數(shù)原型如下:

#include 
int printf(const char *format, ...);

printf函數(shù)使用格式為:printf(“<格式化字符串>”,參量表);

printf()是C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù),在stdio.h中定義。輸出的字符串除了可以使用字母、數(shù)字、空格和一些數(shù)字符號(hào)以外,還可以使用一些轉(zhuǎn)義字符表示特殊的含義。

字符串常量原樣輸出,在顯示中起提示作用。輸出表列中給出了各個(gè)輸出項(xiàng),要求格式控制字符串和各輸出項(xiàng)在數(shù)量和類型上應(yīng)該一一對(duì)應(yīng)。其中格式控制字符串是以%開頭的字符串,在%后面跟有各種格式控制符,以說明輸出數(shù)據(jù)的類型、寬度、精度等。

  • 格式控制符說明

控制符

說明

%c

輸出一個(gè)字符(char)

%d

輸出十進(jìn)制整數(shù)(int)

%hhd

輸出一個(gè)字節(jié)的整數(shù)(char)

%hd

輸出兩個(gè)字節(jié)的整數(shù)(short)

%ld

輸出長(zhǎng)整型(long)

%md

m指輸出字段寬度,若數(shù)據(jù)位數(shù)小于m,則左邊以空格補(bǔ)齊,若大于m,則按實(shí)際位數(shù)輸出。輸出的數(shù)據(jù)按照右邊對(duì)齊,一共占m位,所有類型都支持指定輸出字段寬度。在%后面加上-可實(shí)現(xiàn)數(shù)據(jù)左對(duì)齊。

%u

輸出無符號(hào)整數(shù)(unsigned int)。輸出無符號(hào)時(shí)也可以用%d,此時(shí)會(huì)將無符號(hào)轉(zhuǎn)換為有符號(hào)輸出。

%lu

輸出無符號(hào)長(zhǎng)整數(shù)(unsigned long)

%f

輸出浮點(diǎn)型(float),以小數(shù)形式輸出。不指定字段寬度,由系統(tǒng)自動(dòng)指定,整數(shù)部分全部輸出,小數(shù)部分輸出6位,超過6位的四舍五入。

%.mf

輸出實(shí)數(shù)時(shí)小數(shù)點(diǎn)后保留 m 位,注意m前面有個(gè)點(diǎn)。比如: %.2f。

%lf

(long double 使用%lf 輸出)

%o或%#o

八進(jìn)制輸出,%#o會(huì)自動(dòng)顯示前綴

%x或%X或%#x

十六進(jìn)制輸出

%s

字符串輸出

%p

輸出地址

%%

輸出字符%

%t

輸出水平制表符

2.標(biāo)準(zhǔn)輸入printf

scanf()是C語(yǔ)言中的一個(gè)輸入函數(shù),與printf函數(shù)一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數(shù)時(shí)要加上#include 。

#include 

int scanf(const char *format, ...);

scanf()是從標(biāo)準(zhǔn)輸入(標(biāo)準(zhǔn)輸入設(shè)備,一般指向鍵盤)中讀內(nèi)容的通用子函數(shù);可以通過說明的格式讀入多個(gè)字符,并保存在對(duì)應(yīng)地址的變量中。

在使用scanf函數(shù)時(shí),主要注意一下讀取字符類型數(shù)據(jù)問題;scanf是從標(biāo)準(zhǔn)輸入緩沖區(qū)中讀取輸入的數(shù)據(jù),而%c的字符輸入格式會(huì)接收回車字符和空格字符,在輸入第一個(gè) scanf時(shí)輸入字符后按回車結(jié)束,輸入緩沖中保存了這個(gè)回車符,遇到第二個(gè)scanf時(shí),它自動(dòng)把這個(gè)回車符賦給了后面的%c。而如果第二個(gè)scanf的輸入格式不是%c時(shí),由于格式不匹配,這個(gè)回車符會(huì)被自動(dòng)忽略, 所以在連續(xù)輸入兩個(gè)%c的格式時(shí)會(huì)出現(xiàn)后面%c獲取不到正確。

輸入示例:

#include
intmain(intargc,char**argv)
{
inta;
charb;
floatc;
scanf("%d %c%f",&a,&b,&c);//%d和%c中間有空格
printf("a=%dn",a);
printf("b=%cn",b);
printf("c=%fn",c);
}
[root@xsw c_2020]# ./a.out 
輸入整型、字符型、浮點(diǎn)型:12 a 12.34  #輸入時(shí)也必須在12和a之間加空格
a=12
b=a
c=12.340000

3.輸出函數(shù)名和行號(hào)

#include 
int main()
{

	/*
		't' --制表符(相當(dāng)于TAB鍵)
		__FILE__  文件名
		__FUNCTION__(或__func__)  函數(shù)名
		__LINE__    行號(hào)
		__DATE__    日期顯示
		__TIME__    時(shí)間顯示
	*/
	printf("[%s] %s line:%dn",__FILE__,__func__,__LINE__);
	printf("time:%s--%sn",__DATE__,__TIME__);
}
pYYBAGSGuFeAFWVRAAIBXvSVBHk599.png

4.printf輸出字體顏色

在有些時(shí)候我們希望通過printf輸出的內(nèi)容以不同的顏色在終端展示,這樣在調(diào)試過程看起來更加直觀。

printf輸出顏色時(shí)的控制命令:/033[A1;A2;A3m

/033[為固定開頭;
m為固定結(jié)尾;
A1表示屬性;
A2表示字體顏色;
A3表示背景顏色;

屬性代碼

功能

0

重置所有屬性

1

高亮/加粗

2

暗淡

4

下劃線

5

閃爍

8

反轉(zhuǎn)

8

隱藏

  • A2屬性

屬性代碼

功能

30

黑色

31

紅色

32

綠色

33

黃色

34

藍(lán)色

35

品紅

36

青色

37

白色

  • A3屬性

屬性代碼

功能

40

黑色

41

紅色

42

綠色

43

黃色

44

藍(lán)色

45

品紅

46

青色

47

白色

  • 示例
#include 
int main()
{
	printf("?33[1;;41m%s?33[0mn", "Hello World!");//字體加粗,背景為紅色
	//加下劃線,字體顏色為黑色,背景為白色
	printf("?33[4;30;47m%s?33[0mn", "Hello World!");	
	printf("?33[5m%s?33[0mn", "Hello World!");//字體閃爍
	printf("?33[;34m%s?33[0mn", "Hello World!");//設(shè)置字體為綠色
	printf("?33[;;42m%s?33[0mn", "Hello World!");//設(shè)置設(shè)置背景為綠色
}
pYYBAGSGuTWAL5mgAACG3hTLB_U687.png
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 輸入輸出
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    10730
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134026
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4235

    瀏覽量

    61965
  • Printf
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    13564
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言基礎(chǔ)知識(shí)科普

    C語(yǔ)言是單片機(jī)開發(fā)中的必備基礎(chǔ)知識(shí),本文列舉了部分STM32學(xué)習(xí)中比較常見的一些C語(yǔ)言基礎(chǔ)知識(shí)。
    發(fā)表于 07-21 10:58 ?1815次閱讀

    STM32單片機(jī)中的C語(yǔ)言基礎(chǔ)知識(shí)

    C語(yǔ)言是單片機(jī)開發(fā)中的必備基礎(chǔ)知識(shí),本文列舉了部分STM32學(xué)習(xí)中比較常見的一些C語(yǔ)言基礎(chǔ)知識(shí)。
    發(fā)表于 09-21 17:21 ?4435次閱讀

    C語(yǔ)言基礎(chǔ)知識(shí)(5)--循環(huán)語(yǔ)句

    C語(yǔ)言基礎(chǔ)知識(shí)(5)--循環(huán)語(yǔ)句
    的頭像 發(fā)表于 06-15 10:18 ?1775次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>(5)--循環(huán)語(yǔ)句

    c語(yǔ)言基礎(chǔ)知識(shí)

    c語(yǔ)言基礎(chǔ)知識(shí)
    發(fā)表于 08-17 17:03

    模塊輸入輸出(I/O)知識(shí)

    模塊輸入輸出(I/O)知識(shí)   我覺得有必要談一下模塊的輸入輸出口的梳理,一般我們可以分為IO的功能劃分和IO規(guī)范。前者的目
    發(fā)表于 11-21 14:06 ?2629次閱讀

    C++語(yǔ)言基礎(chǔ)知識(shí)講解

    C++語(yǔ)言基礎(chǔ)知識(shí)講解,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-14 15:30 ?21次下載

    C語(yǔ)言數(shù)據(jù)輸入輸出函數(shù)總結(jié)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言數(shù)據(jù)輸入輸出函數(shù)總結(jié)資料免費(fèi)下載。
    發(fā)表于 09-29 15:51 ?6次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>數(shù)據(jù)<b class='flag-5'>輸入輸出</b>函數(shù)總結(jié)資料免費(fèi)下載

    C語(yǔ)言程序設(shè)計(jì)教程之?dāng)?shù)組使用練習(xí)和文件和輸入輸出的資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之?dāng)?shù)組使用練習(xí)和文件和輸入輸出的資料概述。
    發(fā)表于 11-16 17:47 ?5次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)教程之?dāng)?shù)組使用練習(xí)和文件和<b class='flag-5'>輸入輸出</b>的資料概述

    適合C語(yǔ)言小白看的基礎(chǔ)知識(shí)梳理總結(jié)

    C語(yǔ)言是當(dāng)代人學(xué)習(xí)及生活中的必備基礎(chǔ)知識(shí),應(yīng)用十分廣泛,下面為大家?guī)?b class='flag-5'>C語(yǔ)言基礎(chǔ)知識(shí)梳理總結(jié),
    的頭像 發(fā)表于 01-04 11:07 ?4638次閱讀

    C語(yǔ)言教程之順序結(jié)構(gòu)程序設(shè)計(jì)數(shù)據(jù)輸入輸出C程序上機(jī)過程資料概述

    1 如何在終端設(shè)備上實(shí)現(xiàn)輸入輸出 所謂輸入輸出是以計(jì)算機(jī)為主體而言的;操作系統(tǒng)分別將鍵盤和顯示器定義為標(biāo)準(zhǔn)輸入、輸出設(shè)備。 C
    發(fā)表于 01-25 15:44 ?5次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>教程之順序結(jié)構(gòu)程序設(shè)計(jì)數(shù)據(jù)<b class='flag-5'>輸入輸出</b>及<b class='flag-5'>C</b>程序上機(jī)過程資料概述

    C語(yǔ)言基礎(chǔ)知識(shí)講解

    C語(yǔ)言基礎(chǔ)知識(shí)講解
    發(fā)表于 05-19 17:39 ?13次下載

    C語(yǔ)言輸入輸出

    文章目錄系列文章目錄 前言 一、pandas是什么? 二、使用步驟 1.引入庫(kù) 2.讀入數(shù)據(jù) 總結(jié)前言 今天重新溫習(xí)了C語(yǔ)言輸入輸出方面的
    發(fā)表于 12-14 18:52 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>輸入輸出</b>

    單片機(jī)C語(yǔ)言基礎(chǔ)知識(shí)

    單片機(jī)C語(yǔ)言基礎(chǔ)知識(shí)
    發(fā)表于 10-08 09:30 ?7次下載

    STM32中C語(yǔ)言基礎(chǔ)知識(shí)

    C語(yǔ)言是單片機(jī)開發(fā)中的必備基礎(chǔ)知識(shí),本文列舉了部分STM32學(xué)習(xí)中比較常見的一些C語(yǔ)言基礎(chǔ)知識(shí),
    的頭像 發(fā)表于 04-27 17:42 ?1209次閱讀
    STM32中<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    C++語(yǔ)言基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《C++語(yǔ)言基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?6次下載