C 語言中的格式指定符

你好,有抱負的程式設計師!今天,我們將深入探討 C 語言中迷人的格式指定符世界。如果你以前從未寫過一行代碼,也別擔心 - 我將成為你在這次激動人心的旅程中的友好指南。在這個教程結束時,你將能夠像專家一樣使用格式指定符!

C - Format Specifiers

為什麼我們在 C 語言中使用格式指定符?

想象一下你正在告訴你的朋友你喜歡的數字。你可能会說,“我的幸運數字是 7,我喜歡數字 3.14。”在 C 程式設計中,我們需要一種方式來告訴電腦我們正在處理的信息是什麼類型。這就是格式指定符的用武之地!

格式指定符就像小翻譯員,幫助我們的程序理解我們正在處理的數據類型。當我們想要列印值或從用戶那裡讀取輸入時,它們特別有用。

printf() 函數中的格式指定符

讓我們從 printf() 函數開始,我們用它來顯示輸出。這裡有一個簡單的例子:

#include <stdio.h>

int main() {
int age = 25;
printf("我今年 %d 歲。\n", age);
return 0;
}

在這段代碼中,%d是我們的格式指定符。它告訴 printf() 我們正在處理一個整數(整數)。當你運行這個程序時,它將輸出:

我今年 25 歲。

這不是很酷嗎?%dage的值替換。這就像魔法,但其實只是 C 語言在做它的事情!

scanf() 函數中的格式指定符

現在,讓我們看看 scanf(),我們用它來從用戶那裡獲取輸入。這裡有一個例子:

#include <stdio.h>

int main() {
int favorite_number;
printf("你最喜欢的數字是什麼?");
scanf("%d", &favorite_number);
printf("哇,%d 是一個很棒的數字!\n", favorite_number);
return 0;
}

在這裡,我們再次使用 %d,但這次它是告訴 scanf() 期待用戶的整數輸入。&favorite_number 之前是很重要的 - 它告訴 C 將輸入存儲在哪裡。現在不用太擔心這個;我們稍後會更詳細地介紹。

格式指定符的類型

C 語言中有許多類型的格式指定符,每種都是為了處理特定類型的數據而設計的。讓我們看看一些最常見的:

整數格式指定符

指定符 描述 示例
%d 有符號十進制整數 42, -17
%u 無符號十進制整數 42
%o 無符號八進制 52
%x 或 %X 無符號十六進制整數 2A 或 2a

讓我們看看這些是如何工作的:

#include <stdio.h>

int main() {
int num = 42;
printf("十進制: %d\n", num);
printf("無符號: %u\n", num);
printf("八進制: %o\n", num);
printf("十六進制: %x\n", num);
return 0;
}

這將輸出:

十進制: 42
無符號: 42
八進制: 52
十六進制: 2a

浮點數格式

指定符 描述 示例
%f 十進制浮點數 3.14
%e 或 %E 科學計數法 3.14e+00 或 3.14E+00
%g 或 %G 使用 %f 或 %e,哪個較短就用哪個 各異

這裡有一個有趣的例子:

#include <stdio.h>

int main() {
float pi = 3.14159;
printf("Pi 約等於 %.2f\n", pi);
printf("科學計數法: %e\n", pi);
return 0;
}

這將給我們:

Pi 約等於 3.14
科學計數法: 3.141590e+00

注意到我們在 %.2f 中使用了 .2 來限制小數點後的位數嗎?這是一個控制精度的巧妙技巧!

字符串格式

指定符 描述 示例
%s 字符串 "Hello, World!"
%c 單個字符 'A'

讓我們來使用這些:

#include <stdio.h>

int main() {
char name[] = "Alice";
char initial = 'A';
printf("Hello, %s! 你的名字以 %c 開頭。\n", name, initial);
return 0;
}

這將輸出:

Hello, Alice! 你的名字以 A 開頭。

檔案 I/O 函數中的格式指定符

格式指定符不僅用於控制台 I/O。它們也用於檔案 I/O 函數,如 fprintf()fscanf()。這些函數的工作方式與 printf()scanf() 相似,但與檔案一起使用。這裡有一個快速示例:

#include <stdio.h>

int main() {
FILE *file = fopen("data.txt", "w");
if (file != NULL) {
int age = 30;
float height = 1.75;
fprintf(file, "Age: %d, Height: %.2f\n", age, height);
fclose(file);
}
return 0;
}

這段代碼創建了一個名為 "data.txt" 的檔案,並向其中寫入了一些格式化的數據。

以上就是了,各位!我們已經涵蓋了 C 語言中格式指定符的基本知識。記住,練習使

Credits: Image by storyset