簡體   English   中英

如何在C中打印微秒符號?

[英]how to print the microsecond symbol in C?

我試圖在 C 中打印微秒符號,但在輸出中沒有得到任何數據。

printf("Micro second = \230");

我也嘗試使用 int i = 230;

printf("Character %c", i);

但徒勞無功! 任何指針?

這完全取決於您正在使用的控制台使用的字符編碼。 如果您使用的是Linux或Mac OS X,則很可能編碼為UTF-8 μ(Unicode代碼點U + 00B5)的UTF-8編碼為“C2 B5”(兩個字節),因此您可以像這樣打印:

printf("Micro second = \xC2\xB5");  // UTF-8

如果你在Windows上,那么控制台使用的默認編碼是代碼頁437 ,那么μ編碼為0xE6,所以你必須這樣做:

printf("Micro second = \xE6");  // Windows, assuming CP 437

以下是在C中打印它的標准認可方式:

printf("%lc", L'\u00b5');

如果你很高興假設UTF-8,我只需硬編碼"µ"

由於您在Mac OS上工作,您可以放心終端使用UTF-8。 因此,調出字符調色板(編輯 - >特殊字符...),在那里找到微秒符號,並將其放入字符串中。

int main()
{
    printf("µs\n");
}

只要您的源文件也是UTF-8,它就會起作用。 否則,您需要找到它的代碼點(也應在字符調色板中指出)。 將鼠標懸停在角色上以查找其UTF-8值(並原諒我的法語系統): 顯示代碼點的Mac OS特殊字符調色板示例

這意味着您可以使用printf("\\xc2\\xb5")作為字符本身的獨立編碼替換。

  printf("%c", 230);

適合我。 我認為這是依賴操作系統的。 它依賴於編碼(謝謝zneak)。 我在Windows上。

我遇到了同樣的問題,我找到了基於代碼頁 437的解決方案

"\xB5"

我只是將該代碼包含在一個字符串中,它對我有用。

我的環境:Windows、C++。 我試圖將字符串轉換為以 SFML 顯示。

在工作項目中混合使用 C 和 C++14,這對我有用:

printf("Micro second symbol = \xC2\xB5");

\\xB5 和 \\230 在我的輸出中產生了 ▒。 我的項目設備顯然很挑剔,因為我在其他地方使用一些在線 IDE 和 Mac 上的 Xcode 版本進行了嘗試,一切正常。

可能是如果您嘗試在控制台之外的其他地方打印,比如 LCD 屏幕,那么您的屏幕必須被編程(創建並映射到 xyz...)以包含該字符。 雖然根據我的經驗,這取決於您正在創建的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM