c語言寬
Ⅰ C語言 格式寬度的問題
格式寬度%md(m為數值)原則是:
如果實際寬度小於m,則前面填充空格,如果實際寬度大於m,則按實際的寬度輸出。
Ⅱ 關於C語言的位寬
解釋如下:
1
如果不用.n顯式指定小數位數,則默認是保留6位小數。
這里就沒有顯式指定,所以保留6位小數。
2
%10f中的10表示輸出的最小寬度是10,同時,因為是正數,所以是右對齊(當然負數就是左對齊了),當實際寬度不足10位時,會在左邊補充空格以填充到10位,當寬度超出10位時,不受此指定的影響。
同時,對於這里的寬度,小數點也算一位。
所以,輸出就是那樣了。
Ⅲ C語言 輸出寬度的寬度指的是什麼
樣例中的%4d中的4就是最小輸出寬度,即顯示數字所佔用的最小的字元數,如果不足4個字元,用空格補齊
Ⅳ 什麼是C語言中的寬字元與多位元組字元
C 語言原本是在英文環境中設計的,主要的字元集是7 位的ASCII 碼。從此開始,8 位的byte(位元組)變成最常見的字元編碼單位,但是國際化軟體必須能夠表示不同的字元,而這些字元數量龐大,無法使用一個位元組編碼,於是世界上使用各式 各樣多位元組的字元編碼集合已經有數十年了,比如用來表示「非拉丁字母」以及「非字母」的中、日、韓文字系統。在1994 年,「Normative Addenm 1」(基準增補一)的採用,讓ISO C 可以標准化兩種表示大型字元集的方法:寬字元(wide character,該字元集內每個字元使用相同的位長)以及多位元組字元(multibyte character,每個字元可以是一到多個位元組不等,而某個位元組序列的字元值由字元串或流(stream)所在的環境背景決定)。
注 意: 雖然C現在提供抽象機制,可以處理和轉換不同種類的編碼集合,但語言本身並沒有定義或指定任何編碼集合,或任何字元集(除前一節提到的基本源代碼字元集和 基本運行字元集外)。換句話說,這部分是由個別的實現版本指定如何編碼寬字元,以及要支持什麼類型的多位元組字元編碼機制。
自從1994 年的增補之後,C 不只提供char類型,還提供wchar_t類型(寬字元),此類型定義在stddef.h 頭文件中。wchar_t 類型足以表示某個實現版本擴展字元集的任何元素。
雖然C 標准沒有支持Unicode 字元集,許多實現版本使用Unicode 轉換格式UTF-16 和UTF-32(參考http://www.unicode.org) 來處理寬字元。Unicode 標准和ISO/IEC 10646標准相當接近,而且是許多既有字元集(包括7 位的ASCII)的超集。如果遵循Unicode標准,wchar_t類型至少是16或32位長,而wchar_t類型的一個值就代表一個Unicode 字元。
在多位元組字元集中,每 個字元的編碼寬度都不等,可以是一個位元組,也可以是多個位元組。源代碼字元集和運行字元集都可能包含多位元組字元,如果真的包含多位元組字元的話,那麼基本字元 集中的每個字元都只會佔用一個位元組(完全沒有多位元組的字元),空字元是唯一的例外,空字元可能會佔用任意個數的位元組(但這些位元組內全部的位都必須為0)。 多位元組字元可以被用於字元的常量、字元串字面值(string literal)、標識符(identifier)、注釋(comment),以及頭文件。許多的多位元組字元集被設計來支持特定國家的語言,例如JIS 字元集(日本業界標准,Japanese Instrial Standard)。多位元組UTF-8 字元集是由Unicode Consortium(萬國碼聯盟)定義的,可以表示Unicode 字元集的所有字元。
UTF-8 字元所使用的空間大小從一個位元組到四個位元組都有可能。多位元組字元和寬字元(也就是wchar_t)的主要差異在於寬字元佔用的位元組數目都一樣,而多位元組字元的位元組數目不等,這樣的表示方式使得多位元組字元串比寬字元串更難處理。
比 方說,即使字元'A'可以用一個位元組來表示,但是要在多位元組的字元串中找到此字元,就不能使用簡單的位元組比對,因為即使在某個位置找到相符合的位元組,此字 節也不見得是一個字元,它可能是另一個不同字元的一部分。然而,多位元組字元相當適合用來將文字存儲成文件(參見第13 章)。
C 提供了一些標准函數,可以將多位元組字元轉換為wchar_t,或將寬字元轉換為多位元組字元。比方說,如果C 編譯器使用Unicode 標準的UTF-16 和UTF-8
Ⅳ 在C語言中什麼是字元寬
在C中,printf函數的使用格式是:printf(「格式控制字元串」,輸出表列)
其中「格式控制字元串」一般形式為:
[標志][輸出最小寬度][.精度][長度]類型。
如LZ問題中"%1d",其中數值1,就是指的輸出最小寬度。
而這個輸出最小寬度,是用十進制整數來表示的。
若實際位數多於定義的寬度,則按實際位數輸出,
若實際位數少於定義的寬度則補以空格或0。
所以當這個寬度為1時,因為此時a的值是5,只有1位,定義的寬度不大於實際寬度,所以按實際寬度輸出。但是定義寬度為2時,超過了實際數據寬度,所以多輸出的位補了空格。
另外,LZ所謂的字元寬應該是指輸出的字元位數的寬度。
Ⅵ C語言中寬度和長度有什麼區別
可以在"%"和字母之間的數字表示最大場寬。
例如:
%3d
表示輸出3位整型數,
不夠3位右對齊。
%9.2f
表示輸出場寬為9的浮點數,
其中小數位為2,
整數位為6,
小數點佔一位,
不夠9位右對齊。
%8s
表示輸出8個字元的字元串,
不夠8個字元右對齊。
如果字元串的長度、或整型數位數超過說明的場寬,
將按其實際長度輸出。
但對浮點數,
若整數部分位數超過了說明的整數位寬度,
將按實際整數位輸出;
若小數部分位數超過了說明的小數位寬度,
則按說明的寬度以四捨五入輸出。
對於整數和字元串來說,不存在精度問題。
對於浮點來說,所謂的精度是指小數位寬度。
Ⅶ C語言怎麼輸入和輸出寬字元
寬字元有專門的輸入函數wscanf。
用普通的scanf也可以做到,但需要做處理,所以在輸入寬字元的時候,最佳選擇還是專門的wscanf。
當輸入寬字元型變數時,需要使用格式符號%lc, 輸入寬字元串時需要使用格式符號%ls。
另外,寬字元一般用wprintf輸出,這時輸出字元和字元串時,用%c和%s即可。
參考代碼如下:
void main( void ){ wchar_t wc, ws[81];//定義一個寬字元變數,及一個寬字元數組。 wscanf( L"%lc%ls",&wc, ws );//輸入值。 wprintf( L"%c,%s\n",wc, ws);//輸出值。}
Ⅷ 在C語言中怎麼打出寬字元呢
用大寫的%S就可以:
wchar_t *wideChar = L"This is wide 中文顯示";
setlocale( LC_ALL, ".936" ); // 設置中文代碼頁,否則不列印中文
printf( "%s\n", wideChar ); //小寫,只打出一個字母
printf( "%S\n", wideChar ); //大寫,打出全部
Ⅸ C語言中數據的實際寬度指的什麼。
用於確定最小輸出寬度,例如:
printf("%5d",i);
默認輸出寬度為5,如果實際寬度超出5則以實際寬度輸出,如果不足5則輸出右對齊,左邊補空格。如果是%-5d那麼就是左對齊,右邊補空格。