中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言格式化輸出函數printf怎么使用

發布時間:2023-03-29 16:31:44 來源:億速云 閱讀:108 作者:iii 欄目:開發技術

這篇文章主要介紹“C語言格式化輸出函數printf怎么使用”,在日常操作中,相信很多人在C語言格式化輸出函數printf怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言格式化輸出函數printf怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    1、printf函數的一般格式

    (由于篇幅較長,內容較全,建議收藏)

    printf函數的一般格式為:
    printf(格式控制字符串,輸出值參數表)
    如:

    printf("f=%f,c=%f\n",f,c);

    其中,f=%f,c=%f\n 是格式控制字符串,f,c 是輸出值參數表。

    1)格式控制字符串是用雙引號括起來的字符串,包括三類信息:

    1. 格式字符。格式字符由“%”引導,如%d、%f等。它的作用是控制輸出字符的格式。

    2. 轉義字符。格式控制字符串里的轉義字符按照轉義后的含義輸出,如上面printf函數雙引號內的換行符“\n”,即輸出回車。

    3. 普通字符。普通字符即需要在輸出時原樣輸出的字符,如上面printf函數中雙引號內的“f=”和“c= ”部分。

     (2)輸出值參數表是需要輸出的數據項的列表,輸出數據項可以是常量、變量或表達式,輸出值參數之間用逗號分隔,其類型應與格式字符相匹配。每個格式字符和輸出值參數表中的輸出值參數一一對應,沒有輸出參數時,格式控制字符串中不再需要格式字符。

    2、格式字符

    (1)d格式字符

    輸出帶符號的十進制整數,正數的符號不輸出。
    如:

    int a = 256,b = -125;
    printf("%d\n%d",a,b);

    輸出結果為:

    C語言格式化輸出函數printf怎么使用

    還可以在%和格式字符中間插入格式修飾符,用于指定輸出數據的域寬(所占的列數),如用“%5d”,指定輸出數據占5列,輸出的數據在域內向右靠齊。如:

    int a = 256,b = -125;
    printf("%5d\n%5d",a,b);

    輸出結果為:

    C語言格式化輸出函數printf怎么使用

    其中256前面有2個空格,-125前面有一個空格。
    若要輸出long(長整型)數據,則在格式字符d前面加字母l(代表long),即“%ld”。

    (2)f格式符

    輸出一個實數(包括單精度、雙精度、長雙精度),以小數形式輸出,有以下幾種用法:

    1)基本型,%f

    不指定輸出數據的長度,由系統根據數據的實際情況決定數據所占的列數。系統處理的方法一般是:實數中的整數部分全部輸出,小數部分輸出6位。
    如:

    #include<stdio.h>
    int main(){
    	double a = 1.0;
    	printf("%f\n",a/3);
    	return 0;
    }

    運行結果:

    C語言格式化輸出函數printf怎么使用

    雖然a是double型,a/3的結果也是double型,但用 %f格式字符只能輸出6位小數

    2)指定數據寬度和小數位數用%m.nf 。

    其中,m表示輸出數據的寬度,即占m列,n表示小數點后保留n位小數。(若不需強調輸出數據寬度,可直接用%.nf)
    如:

    #include<stdio.h>
    int main(){
    	double a = 1.0;
    	printf("%20.15f\n",a/3);
    	return 0;
    }

    運行結果為:

    C語言格式化輸出函數printf怎么使用

    其中,在0前面有3個空格,小數點后輸出了15位小數。
    注意:一個double型數只能保證15位有效數字的精確度,即使指定小數位數為50(如用%.50f),也不能保證輸出的50位都是有效數值。

    3)輸出的數據向左對齊,用%-m.nf。

    即在m.n前面加一個負號,能夠讓輸出數據在域內向左靠齊。
    如:

    #include<stdio.h>
    int main(){
    	double a = 1.0;
    	printf("%-20.15f\n",a/3);
    	return 0;
    }

    運行結果:

    C語言格式化輸出函數printf怎么使用

    (3)c格式字符

    用于輸出一個字符,如:

    #include<stdio.h>
    int main(){
    	char ch = 'a';
    	printf("%c",ch);
    	return 0;
    }

    輸出結果:

    C語言格式化輸出函數printf怎么使用

    也可以加格式修飾符指定域寬,如:

    #include<stdio.h>
    int main(){
    	char ch = 'a';
    	printf("%5c",ch);
    	return 0;
    }

    輸出結果:

    C語言格式化輸出函數printf怎么使用

    (4)s格式符

    用于輸出一個字符串,如:

    printf("%s","Hello!");

    輸出結果:

    C語言格式化輸出函數printf怎么使用

    3、使用printf函數時應注意的問題

    (1)格式控制字符串中沒有%引導的格式字符時,不需要輸出值參數表,直接輸出字符串內容,轉義字符按照轉義后的實際意義輸出,如:

    #include<stdio.h>
    int main(){
    	printf("Hello world!");
    	printf("\n");
    	printf("Hello,\nworld!");
    	return 0;
    	}

    輸出結果:

    C語言格式化輸出函數printf怎么使用

    (2)格式控制字符串中有%引導的格式字符時,輸出值參數表中的數量以及類型必須和格式字符一致,如:

    #include<stdio.h>
    int main(){
    	int a = 123;
    	double b = 35.8,c = 1.0;
    	printf("a = %d,b = %d\n",a,b);
    	printf("a = %d,c = %f\n",a);
    	return 0;
    	}

    運行結果:

    C語言格式化輸出函數printf怎么使用

    分析:第一個printf函數中的輸出參數b是double型,但對應的格式控制符為%d,當類型不一致時并不會進行類型轉換,而會將實際轉入的double型值當作需要的整形類型來理解,因此出現非預期結果;第二個printf函數中,格式控制字符串給出了兩個%引導的格式字符,但是輸出參數表中只有一個參數a。因此輸出c的值默認為內存中a變量后面存儲單元的數據值,即c的值我們不能確定。

    附表1:

    printf函數中用到的格式字符

    格式字符說明
    d輸出帶符號的十進制整數,正數的符號省略
    u以無符號的十進制整數形式輸出
    o以無符號的八進制整數形式輸出,不輸出前導符0
    x以無符號十六進制整數形式(小寫)輸出,不輸出前導符0x
    X以無符號十六進制整數形式(大寫)輸出,不輸出前導符0X
    f以小數形式輸出單、雙精度數,隱含輸出6位小數
    e以指數形式(小寫e表示指數部分)輸出實數
    E以指數形式(大寫E表示指數部分)輸出實數
    g自動選取f或e中輸出寬度較小的一種使用,且不輸出無意義的0
    c輸出一個字符
    s輸出字符串

     附表2:

    printf函數中用到的格式修飾符

    格式修飾符說明
    英文字母l修飾格式字符d、u、o、x時,用于輸出long型數據
    英文字母L修飾格式字符f、e、g時,用于輸出long double型數據
    英文字母h修飾格式字符d、o、x時,用于輸出short型數據
    輸出域寬m(m為整數)指定輸出項輸出時所占的列數
    顯示精度.n(n為整數)對于實數,表示輸出n位小數;對于字符串,表示截取的字符個數
    -(減號)輸出數字或字符在域內向左靠

    到此,關于“C語言格式化輸出函數printf怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    蒙城县| 密山市| 宁都县| 广汉市| 丹棱县| 武山县| 霞浦县| 辰溪县| 石景山区| 应城市| 泸定县| 汾西县| 上思县| 繁峙县| 新兴县| 蓬溪县| 类乌齐县| 行唐县| 民和| 梅河口市| 郑州市| 安西县| 乐昌市| 马山县| 宁晋县| 修文县| 神池县| 洛隆县| 临海市| 西城区| 邹平县| 云龙县| 射阳县| 保康县| 博野县| 兴宁市| 墨竹工卡县| 海门市| 南昌市| 昭平县| 浠水县|