C/C++ 格式說明符及其用法
在 C/C++ 中,格式說明符(Format Specifiers)主要用于 printf()、scanf() 等輸入輸出函數(shù)中,用于控制數(shù)據(jù)的格式化輸入和輸出。以下是常見的格式說明符及其用法:
一、基礎(chǔ)格式說明符
| 說明符 | 適用數(shù)據(jù)類型 | 描述 |
|---|---|---|
%d | int | 十進制整數(shù)(帶符號) |
%u | unsigned int | 十進制無符號整數(shù) |
%f | float | 浮點數(shù)(默認保留6位小數(shù)) |
%lf | double | 雙精度浮點數(shù)(printf中可用%f代替,但scanf必須用%lf) |
%c | char | 單個字符 |
%s | char* (C 字符串) | 字符串(需以 \0 結(jié)尾) |
%p | void* | 指針地址(十六進制格式,如 0x7ffeeb0b4d60) |
%x | int, unsigned int | 十六進制整數(shù)(小寫字母,如 1a3f) |
%X | 同上 | 十六進制整數(shù)(大寫字母,如 1A3F) |
%o | 同上 | 八進制整數(shù) |
%e | float, double | 科學(xué)計數(shù)法(小寫 e,如 3.141593e+00) |
%E | 同上 | 科學(xué)計數(shù)法(大寫 E,如 3.141593E+00) |
%g/%G | 同上 | 自動選擇 %f 或 %e(根據(jù)數(shù)值大小決定更緊湊的格式) |
%% | - | 輸出百分號 % |
二、修飾符(用于精細控制格式)
1. 寬度與對齊
printf("%10d", 123); // 輸出寬度為10,右對齊:" 123"
printf("%-10d", 123); // 輸出寬度為10,左對齊:"123 "2. 精度控制
printf("%.2f", 3.14159); // 保留2位小數(shù):3.14
printf("%.5s", "hello world"); // 截取前5個字符:"hello"3. 填充字符
printf("%05d", 42); // 用0填充寬度5:"00042"4. 長度修飾符
| 修飾符 | 示例 | 描述 |
|---|---|---|
h | %hd, %hu | short int / unsigned short |
l | %ld, %lu | long int / unsigned long |
ll | %lld, %llu | long long int / unsigned long long |
L | %Lf, %Le | long double |
三、scanf() 的格式說明符
scanf() 中必須嚴(yán)格匹配數(shù)據(jù)類型:
int num;
scanf("%d", &num); // 輸入整數(shù)
double value;
scanf("%lf", &value); // 輸入雙精度浮點數(shù)(必須用%lf)跳過輸入:
scanf("%d %*s %f", &age, &salary); // 跳過中間的字符串輸入四、代碼示例
#include <stdio.h>
int main() {
int num = 42;
float pi = 3.14159;
char str[] = "Hello";
printf("十進制: %d, 十六進制: 0x%x\n", num, num);
printf("浮點數(shù): %.2f, 科學(xué)計數(shù)法: %e\n", pi, pi);
printf("字符串: %s, 地址: %p\n", str, (void*)&num);
printf("填充示例: %05d\n", num);
return 0;
}輸出:
十進制: 42, 十六進制: 0x2a
浮點數(shù): 3.14, 科學(xué)計數(shù)法: 3.141590e+00
字符串: Hello, 地址: 0x7ffd5a3d4a4c
填充示例: 00042
五、注意事項
- 類型匹配:格式說明符必須與變量類型嚴(yán)格匹配,否則可能導(dǎo)致未定義行為。
- 錯誤示例:
printf("%d", 3.14);// 錯誤!應(yīng)用%f。
- 錯誤示例:
- 指針與地址:
%p需要將指針強制轉(zhuǎn)換為void*。 - 字符串安全:
scanf("%s", str)可能導(dǎo)致緩沖區(qū)溢出,建議用%Ns(如%10s)限制輸入長度。
到此這篇關(guān)于C/C++ 格式說明符的文章就介紹到這了,更多相關(guān)C++ 格式說明符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中整數(shù)類型(Integer?Types)的避雷指南與正確使用姿勢詳解
在實際開發(fā)中,如果對C++內(nèi)建整數(shù)類型的機制不熟悉,或者不遵循一定的使用規(guī)范,則非常容易引入難以排查和調(diào)試的Bug,下面小編就和大家詳細講解一下C++中整數(shù)類型的正確使用姿勢吧2026-02-02
VsCode搭建C語言運行環(huán)境詳細過程及終端亂碼問題解決方案
這篇文章主要介紹了VsCode搭建C語言運行環(huán)境以及終端亂碼問題解決,在VsCode中搭建C/C++運行環(huán)境需要先安裝幾個插件,具體插件文中給大家詳細介紹,需要的朋友可以參考下2022-12-12
C++ list容器基本邏輯結(jié)構(gòu)和實現(xiàn)原理
本文詳細介紹了C++中l(wèi)ist容器的基本用法和實現(xiàn)原理,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2026-05-05
c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法
我們在編寫程序時,經(jīng)常涉及到int與string之間的類型轉(zhuǎn)換,本文主要介紹了c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法,具有一定的參考價值,感興趣的可以了解一下2023-08-08

