首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言格式化輸出完全手冊:%d、%ld、%u 等格式字元詳細解析

     編輯:C 語言問答

printf / scanf 格式字元速查表

格式含義對應型別範例
%d, %i有號十進位整數intprintf("%d", -10);
%u無號十進位整數unsigned intprintf("%u", 4000000000u);
%ld有號長整數longprintf("%ld", 1234567890L);
%lu無號長整數unsigned longprintf("%lu", 4000000000UL);
%lld有號長長整數long longprintf("%lld", 1LL<<60);
%f定點浮點數float, doubleprintf("%f", 3.14);
%lf雙精度浮點數double (scanf 專用)scanf("%lf", &d);
%e, %E科學記號doubleprintf("%e", 1e3);
%g, %G自動選 %f 或 %edoubleprintf("%g", 0.0001);
%c單一字元charprintf("%c", 'A');
%s字串char*printf("%s", "Hello");
%p指標位址void*printf("%p", ptr);
%x, %X十六進位unsignedprintf("%X", 255);
%o八進位unsignedprintf("%o", 63);

長度修飾字元

  • h:short / unsigned short(%hd, %hu)
  • l:long / unsigned long(%ld, %lu)、double(%lf 仅 scanf)
  • ll:long long(%lld, %llu)
  • L:long double(%Lf, %Le)

寬度與精度控制

%5d     // 最寬 5 位,右對齊,不足補空格
%05d    // 最寬 5 位,不足補 0
%-5d    // 左對齊
%10.2f  // 總寬 10,小數 2 位,右對齊
%-10.2f // 左對齊
%8s     // 字串最寬 8,右對齊
%.5s    // 最多印 5 個字元
%6.9s   // 至少 6 字元,最多 9 字元

scanf 專用細節

  • %lf 必須用於 double*,%f 用於 float*(printf 兩者通用 %f)。
  • %*d:讀取並丟棄一個整數(抑制賦值)。
  • %[^\n]:讀取整行(含空格),遇換行停止。

常見錯誤

  1. printf("%d", long_var); → 未定義行為,必須 %ld。
  2. scanf("%d", &float_var); → 記憶體破壞,需 %f。
  3. 忘記 & 導致段錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved