C語言格式化輸入輸出

2021-10-09 01:47:39 字數 1514 閱讀 6225

本文主要介紹一下c語言中printf和scanf兩個函式。

printf函式被設計用來顯示格式串(format string)的內容,並且在該串中的指定位置插入可能的值。呼叫printf函式時必須提供格式串,格式串後面的引數是需要在顯示時插入到該串中的值:

printf(格式串, 表示式1, 表示式2, ...);

顯示的值可以是常量、變數或者更加複雜的表示式。呼叫printf函式一次可以列印的值的個數沒有限制。

轉換說明

轉換說明可以用%m.px格式或%-m.px格式,這裡的m和p都是整數常量,而x是字母。m和p都是可選的。如果省略p,m和p之間的小數點也要去掉。在轉換說明%10.2f中,m是10,p是2,而x是f。在轉換說明%10f中,m是10,p(連同小數點一起)省去了;而在轉換說明%.2f中,p是2,m省去了。

如果要顯示的數值所需的字元數少於m,那麼值在字段內是右對齊的。(換句話說,在值前面放置額外的空格。)

例:轉換說明%4d將以•123的形式顯示數123(本章用符號•表示空格字元)。

如果要顯示的值所需的字元數多於m,那麼字段寬度會自動擴充套件為所需的尺寸。

例:轉換說明%4d將以12345的形式顯示數12345,而不會丟失數字。

在m前放上乙個負號會導致左對齊;轉換說明%-4d將以123•的形式顯示123。

精度(precision)p的含義很難描述,因為它依賴於轉換說明符(conversionspecifier)x的選擇。x表明在顯示數值前需要對其進行哪種轉換。對數值來說最常用的轉換說明符有以下幾個。

轉義序列

格式串中常用的**\n被稱為轉義序列(escape sequence)。轉義串行使字串包含一些特殊字元而不會使編譯器引發問題,這些字元包括非列印的(控制)字元和對編譯器有特殊含義的字元(如")。

常用的轉義序列:

不能在字串中只放置單獨乙個字元\,編譯器將認為它是乙個轉義序列的開始。為了顯示單獨乙個字元\,需要在字串中放置兩個\字元:

printf("\\");

scanf函式根據特定的格式讀取輸入。scanf函式轉換說明的用法和printf函式轉換說明的用法本質上是一樣的。

在許多情況下,scanf函式的格式串只包含轉換說明,如下例所示:

int i, j;

float x, y;

scanf ("%d%d%f%f", &i, &j, &x, &y);

輸入:

1

-20.3

-4.0e3

scanf函式將讀入上述行的資訊,並且把這些符號轉換成它們表示的數,然後分別把1、-20、0.3和-4000.0賦值給變數i、j、x和y。

個人**

C語言格式化輸入輸出

原創 2015年03月20日 20 08 32 printf 格式字串的一般形式 標誌 輸出最小寬度 精度 長度 型別 其中方括號 中的項為可選項。各項意義 1 型別 型別字元用以表示輸出資料的型別,其格式符和意義如下表所示 格式字元 意義d 以十進位制形式輸出帶符號整數 正數不輸出符號 o以八進位...

C語言 格式化輸入輸出

格式說明由 和格式字元組成,由 d f等。它的作用是將輸出的資料轉換為指定的格式輸出。格式說明總是由 字元開始的。不同型別的資料用不同的格式字元。格式字元有d,o,x,u,c,s,f,e,g等 如 d整型輸出,ld長整型輸出,o以八進位制數形式輸出整數,x以十六進製制數形式輸出整數,u以十進位制數輸...

C 格式化輸入輸出

c 共有15個 輸入輸出 格式標記位,這15個標記位均為bit位,每個標記位都有自己的含義,且可以單獨設定。格式標記位的取值為0或1 0表示關閉 不使用此格式 1表示開啟 使用此格式 標記位含義 boolalpha 如開啟,則輸入和輸出使用bool值 即ture或false showbase 如開啟...