C語言逸出字元和格式控制符參考

來源:互聯網
上載者:User
逸出字元參考:

/a:蜂鳴,響鈴
/b:回退:向後退一格
/f:換頁
/n:換行,游標到下行行首
/r:斷行符號,游標到本行行首
/t:水平製表
/v:垂直製表
//:反斜線
/':單引號
/":雙引號
/?:問號
/ddd:三位八進位
/xhh:二位十六進位
/0:Null 字元(NULL),什麼都不做

註:
1,/v垂直製表和/f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。
2,/n其實應該叫斷行符號換行。換行只是換一行,不改變游標的橫座標;斷行符號只是回到行首,不改變游標的縱座標。
3,/t 游標向前移動四格或八格,可以在編譯器裡設定
4,/' 在字元裡(即單引號裡)使用。在字串裡(即雙引號裡)不需要,只要用 ' 即可。
5,/? 其實不必要。只要用 ? 就可以了(在windows VC6 和tc2 中驗證)。 

格式控制符參考:

格式輸出字元:printf

使用:向終端輸出若干個類型任意的資料。

形式:printf (格式控制符,輸出資料行表)

說明:

格式控制符:%  格式說明引導符。

      -  指定靠左對齊輸出。

      0  指定空位填零。

      m.n  指定輸出域寬度及精度。

      l.h  輸出長度的修正。

     格式字元   指定輸出的資料類型。

說明:

格式字元:指定輸出項的資料類型和輸出格式。

     d  有符號十進位整數。

     o  無符號八位元。

     x  無符號十六進位數。(小寫x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數,大寫的X則用大寫的ABCDEF來表示10到15之間的數)

     u  不帶符號的十進位整數。


基本整型:兩個位元組,十六個bit(位)

11 11 11 11 11 11 11 11   等於 65535.

11 11 11 11 11 11 11 10     等於 -2.

負數的第一位(符號位)為1。負數的補碼怎麼得到:原碼取反加一。2的位元為:00 00 00 00 00 00 00 10,取反就等於11 11 11 11 11 11 11 01,然後加1,位元逢二進一,所以就得出-2 的二進位代碼。

 

有符號的整型數可以用 %d 輸出。

無符號的整型數可以用 %u 輸出。

電腦裡存的數字都是位元,最高位是符號位還是資料位元,可以由輸出格式符來控制。

 

位元轉換八位元:三個 1 對應一個 7 。

位元鏨十六進位數:四位二進位對應一位十六進位,四個1 對應一個 f。

 

說明: 

格式字元:c    輸出一個字元。

     s   輸出一個字串。

     e   以指數形式輸出實型數。

     f     以小數形式輸出實型數。

     g   自動決定輸出格式為e和f中較短的一種,不列印無效的零。

     %   輸出%。

 

注意:對於單精確度數,使用 %f 格式符輸出時,僅前7位是有效數字,小數6位。

   對於雙精確度數,使用 %lf 格式符輸出時,前16位是有效數字,小數6位。

 

長度修正符

  l:對整型指定長整型long

      例:%ld , %lx , %lo , %lu

    對實型指定雙精確度double

           例:%lf

    h:只用於整型的格式字元修正為short

           例:%hd , %hx , %ho , %hu

對64位整數的輸入輸出,在POJ上的C++環境下(即VC++),64位整數是:
__int64
輸入輸出格式為”%I64d”.

在G++環境下, 64位整數是
long long
輸入輸出格式為”%lld”.

域寬及精度的描述

  M:域寬,即對應的輸出項在輸出裝置上所佔字元數

      若:實際資料寬度>M,按實際資料寬度輸出。

        實際資料寬度<M,左邊補空。

  N:精度,說明輸出的實型數的小數位元。

 

幾點說明:

    編譯器只是檢查printf 函數的調用形式,不分析格式控制字元串,如果格式字元與輸出項的類型不符,不進行類型轉換。(輸出的數為隨機)

    格式字元要用小寫字母。

    格式控制字元串中可以包含逸出字元。

    格式控制字元串中的一般字元則原樣輸出。

    輸出項的參數除了常數、變數外還可以是運算式、函數調用。

        %g,%f和%e這三個格式用於列印浮點值。
                  %g格式用於列印那些不需要按列對齊的浮點數特別有用。其作用有二:
                  一,去掉該數尾多餘的零(沒有達到六位的數)
                  二,保留六位有效數字(多餘六位的)
                  %e格式用於列印浮點數時,一律顯示地使用指數形式:例如:輸出圓周率時是:3.141593e+00
                 兩者的區別:
                 %g格式列印出的數是總共6位有效數字
                 %e格式列印出小數點後的6位有效數字
                 %f禁止使用指數形式來表示浮點數。因此圓周率輸出為:3.141593
                (但注意它的精度要求:也是小數點後6位有效數字)
                (8)%%格式用於列印一個%字元。
               (9)%E和%G只是在輸出時用大寫字母(E)代替了小寫字母(e)

                  輸出加號或減號的技巧,例如:
                printf("%+d %+d %+d/n",-5,0,5);
                只要在中間加個“+”號就行。作用是輸出符號位(即,數的加號或減號)
                如果不希望正數的前面出現‘+’號,可用下面的方法
                只要在中間加個“ ”號(即:空格)就行。例如:
                作用:如果一個數是非負數,就在它的前面插入一個空格。
                int i;
                for(i=-3;i<=3;i++)
                        printf("% d/n",i); //注意%和d之間有一個空格

             

                sscanf()的提示:
                分解字串,很多功能都需要Regex的知識,所以就介紹一下最簡單的幾種用sscanf來分解字串 的用法。
                1.
                char str[100],str1[100],str2[100];
                gets(str);
                sscanf(str,”%s%s”,str1,str2);
                將讀入的一整行字串按空格,定位字元或斷行符號符分割成兩個字串。
                2
                取指定長度的字串。如在下例中,取最大長度為4位元組的字串。
          sscanf("123456 ", "%4s", str);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.