2008年10月30日 星期四

C/C++ printf使用說明

- 列印格式-
-輸出敘述

%c -字元
%s -字串
%d -十進位整數
%u -無號十進位整數
%o -無號八進位整數
%x -無號十六進位整數,以 0 ~ f 表示
%X -無號十六進位整數,以 0 ~ F 表示--
%f -浮點數,小數點型式
%e -浮點數,指數e型式
%E -浮點數,指數E型式
%g -印出 %f 與 %e 較短者
%G -印出 %F 與 %E 較短者
%p -指標位址
%%
-印出百分比符號
-
-控制字元--
-功能
\a -警告音
\b -倒退
\f -換頁
\n -換行
\r -歸位
\t -跳格
\’ -印出單引號
\” -印出雙引號
\\ -反斜線
\/ -斜線
\d -八進位 Ascii 碼
\x -十六進位 Ascii 碼--
-
-修飾子-
-功能
-範例
-
- 向左對齊 -%-3d
+ 將數值的正負號顯示出來 -%+5d
空白 數值為正值時,留一格空白;為負值時,顯示負號 -% 6f
0 將固定欄位長度的數值前空白處填上 0;與 - 修飾子同時使用時,此修飾子無效-- -%07.2f--
數字 欄位長度,當數值的位數大於所定的欄位長度時,欄位會自動加寬它的長度 -%9d
. 數值以 %e, %E, %f 型式表示時,決定小數點後所要顯示的位數 -%4.3f
h 表示 short int 或是 unsigned short int -%5h
l 表示 long int 或是 unsigned long int -%lu

C/C++ 使用typedef建立新型態

使用tyepdef可以重新定義宣告型態成為自行訂定義名稱,使用方法如下:

typedef int INT;
typedef char CHAR;
typedef float FLOAT;
typedef double DOUBLE;

struct company
{
char companyName[20];
char companyAddr[100];
};

重新定義struct company結構宣告型態:
typedef struct company COMPANY;

使用方式如下:

INT a;
CHAR b;
FLOAT c;
DOUBLE d;
COMPANY com;

2008年10月27日 星期一

C/C++ 巢狀結構

巢狀結構指的是結構裡面還有結構。



舉例來說,一間公司如果還有其下子公司,就可以用巢狀結構來表示,例如

子公司結構
struct subCompany
{
char subCompName[20];
char subCompAddr[100];
} ;

母公司結構包含子公司結構

struct mainCompany
{
char mainCompName[20];
char mainCompAddr[100];

struct subCompany comp1;
} ;

宣告一個母公司結構,旗下包含一間子公司,如下:

struct mainCompany asus = {"asus", "台北市北投區", {"和碩", "台北市士林區"}};

存取與使用巢狀結構變數的方法如下:
asus.mainCompName;
asus.mainCompAddr;
asus.comp1.subCompName;
asus.comp1.subCompAddr;

C/C++ 結構陣列

『結構陣列』,Array of Structure,是一種結構型態的陣列。

例如,company的結構:

struct company
{
char companyName[20];
char companyAddress[100];
};

如果要宣告一個結構陣列,儲存三家公司的名稱與地址:

struct company compy[3];

compy這個陣列有三個company結構變數,每個結構變數都擁有companyName與companyAddress這兩個成員

存取與使用結構變數的方法如下:
compy[i].companyName;
compy[i].companyAddress;