本文主要介紹一下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 如開啟...