c語言轉格式
① c語言數據類型如何轉換
不是有強制類型轉換嗎?
強制類型轉換 強制類型轉換
當操作數的類型不同,而且不屬於基本數據類型時,經常需要強制類型轉換,將操作數轉化為所需要的類型。強制類型轉換具有兩種形式,稱為顯式強制轉換和隱式強制類型轉換。
1、顯式強制類型轉換
顯式強制類型轉換需要使用強制類型轉換運算符,格式如下:
type(<expression>)
或
(type)<expression>
其中,type為類型描述符,如int,float等。<expression>為表達式。經強制類型轉換運算符運算後,返回一個具有type類型的數值,這種強制類型轉換操作並不改變操作數本身,運算後操作數本身未改變,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述強制類型轉換的結果是將整型值0xab65的高端兩個位元組刪掉,將低端兩個位元組的內容作為char型數值賦值給變數cChar,而經過類型轉換後nVar的值並未改變。
2、隱式強制類型轉換
隱式類型轉換發生在賦值表達式和有返回值的函數調用表達式中。在賦值表達式中,如果賦值符左右兩側的操作數類型不同,則將賦值符右邊操作數強制轉換為賦值符左側的類型數值後,賦值給賦值符左側的變數。在函數調用時,如果return後面表達式的類型與函數返回值類型不同,則在返回值時將return後面表達式的數值強制轉換為函數返回值類型後,再將值返回,如:
int nVar;
double dVar=3.88;
nVar=dVar;//執行本句後,nVar的值為3,而dVar的值仍是3.88
1,若已知x,y為double類型,則表達式:x=1,y=x+3/2結果是多少啊?
因為x,y都是double型,所以執行了y=x+3/2這個語句後,會輸出小樹部分,double型默認的是小數點後幾位我忘了,你自己調試下,就會明白了!
② C語言轉換格式符大全
int printf(const char *format,[argument]);
format 參數輸出的格式,定義格式為:
%[flags][width][.perc] [F|N|h|l]type
規定數據輸出方式,具體如下:
1.type 含義如下:
d 有符號10進制整數
i 有符號10進制整數
o 有符號8進制整數
u 無符號10進制整數
x 無符號的16進制數字,並以小寫abcdef表示
X 無符號的16進制數字,並以大寫ABCDEF表示
F/f 浮點數
E/e 用科學表示格式的浮點數
g 使用%f和%e表示中的總的位數表示最短的來表示浮點數 G 同g格式,但表示為指數
c 單個字元
s 字元串
% 顯示百分號本身
p 顯示一個指針,near指針表示為:XXXX
far 指針表示為:XXXX:YYYY
n 相連參量應是一個指針,其中存放已寫字元的個數
2.flags 規定輸出格式,取值和含義如下:
無 右對齊,左邊填充0和空格
- 左對齊,右邊填充空格
+ 在數字前增加符號 + 或 -
一個空格 只對負數顯示符號
# 當type=c,s,d,i,u時沒有影響
type=o,x,X時,分別在數值前增加'0',"0x","0X"
type=e,E,f時,總是使用小數點
type=g,G時,除了數值為0外總是顯示小數點 3.width 用於控制顯示數值的寬度,取值和含義如下n(n=1,2,3...) 寬度至少為n位,不夠以空格填充
0n(n=1,2,3...) 寬度至少為n位,不夠左邊以0填充 * 格
式列表中,下一個參數還是width 4.prec 用於控制小數點後面的位數,取值和含義如下:
無 按預設精度顯示
0 當type=d,i,o,u,x時,沒有影響
type=e,E,f時,不顯示小數點
n(n=1,2,3...) 當type=e,E,f時表示的最大小數位數
type=其他,表示顯示的最大寬度 .*
格式列表中,下一個參數還是width
5.F|N|h|l 表示指針是否是遠指針或整數是否是長整數
F 遠指針
n 近指針
h短整數或單精度浮點數
l 長整數或雙精度浮點數
1.一般格式
printf(格式控制,輸出表列)
例如:printf("i=%d,ch=%c\n",i,ch);
說明:
(1)「格式控制」是用雙撇號括起來的字元串,也稱「轉換控制字元串」,它包括兩種信息:
①格式說明:由「%」和格式字元組成,它的作用是將輸出的數據轉換為指定的格式輸出。
②普通字元,即需要原樣輸出的字元。
(2)「輸出表列」是需要輸出的一些數據,可以是表達式
(3)printf函數的一般形式可以表示為
printf(參數1,參數2,……,參數n)
功能是將參數2~參數n按參數1給定的格式輸出
2.格式字元(9種)
(1)d(或i)格式符。用來輸出十進制整數,有以下幾種用法:
①%d,按整型數據的實際長度輸出。
②%md,m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
③%ld(%mld 也可),輸出長整型數據。
例如:long a=123456;
printf("%ld",a);
(2)o格式符,以八進制數形式輸出整數。格式:%o,%mo,%lo,%mlo都可。
(3)x(或X)格式符,以十六進制數形式輸出整數。格式:%x,%mx,%lx,%mlx都可。
(4)u格式符,用來輸出unsigned型數據,即無符號數,以十進制數形式輸出。格式:%u,%mu,%lu都可。
參見:li4-3.c/*無符號數據的輸出*/
(5)c格式符,用來輸出一個字元。格式:%c,%mc都可。
(6)s格式符,用來輸出一個字元串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
參見:li4-5.c /*字元串的輸出*/
(7)f格式符,用來輸出實數(包括單、雙精度),以小數形式輸出。格式:%f,%m.nf,%-m.nf都可。
注意:單精度實數的有效位數一般為7位,雙精度為16位。
參見:li4-6.c/*輸出單精度實數時的有效位數*/
li4-7.c/*輸出雙精度實數時的有效位數*/
li4-8.c/*輸出實數時指定小數位數*/
(8)e(或E)格式符,以指數形式輸出實數。格式:%e,%m.ne,%-m.ne都可。
(9)g(或G)格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種)。
3.說明
(1)除了X、E、G(用大寫字母表示)外,其他格式字元必須用小寫字母;
(2)「格式控制」字元串內可以包含轉義字元;
(3)如果想輸出字元「%」,則應該在「格式控制」字元串中用連續兩個%表示,如:
printf("%f%%",1.0/3);
(4)格式字元表參見下表
表4.1 printf格式字元
格式字元 說 明
d,i 以帶符號的十進制形式輸出整數(正數不輸出符號)
o 以八進制無符號形式輸出整數(不輸出前導符0)
x,X 以十六進制無符號形式輸出整數(不輸出前導符0x),用x則輸出十六進制數的a~f時以小寫形式輸出,用X時,則以大寫字母輸出
u 以無符號十進制形式輸出整數
c 以字元形式輸出,只輸出一個字元
s 輸出字元串
f 以小數形式輸出單、雙精度數,隱含輸出6位小數
e,E 以指數形式輸出實數
g,G 選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0
表4.2 printf的附加格式說明字元
字元
說明
字母l
用於長整型整數,可加在格式符d、o、x、u前面
m(代表一個正整數)
數據最小寬度
n(代表一個正整數)
對實數,表示輸出n位小數;對字元串,表示截取的字元個數
-
輸出的數字或字元在域內向左靠
③ 跪求C語言文件轉換
來往的交通斷裂,終止聯系,
但是我確認損失其中之一是很困難的,
我的心彷彿被誰遺棄
畢竟他們是魔鬼而是鐵甲騎士
Pas quittez moi a terre,神聖的公車,
一個不的道他的歷史的名族哈哈
④ C語言格式怎麼轉換成hex格式
有兩種方法:
1、用相應的IDE(例如:keil)創建一個工程,然後將該C語言文件中的代碼復制到工程中的目錄下。然後使用keil 對該工程進行編譯。這樣就可以得到hex文件。
2、使用相應的編譯器,一步一步的編譯。
不推薦第二種方法因為,單獨使用編譯器編譯需要很多麻煩的步驟,還有可能會出錯。直接使用IDE會更加方便省去很多麻煩的步驟。
⑤ c語言,如何進行日期格式轉換
time.h 有函數 strftime 輸出各種格式,但沒有 你的 11th 13rd 格式。
簡單辦法是用查表法
#include "stdio.h"
#include "stdlib.h"
void main()
{
char dmy[20]="13/12/2010";
int i,j;
int a,b,c;
char d[32][5]={"0","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th",
"11th","12th","13rd","14th","15th","16th","17th","18th",
"19th",.....,"31st"}; // 請自己補全
char m[13][4]={" ","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
j = strlen(dmy);
printf("j=%d\n",j);
for (i=0;i<j ;i++) if ( dmy[i] =='/') dmy[i]=' ';
sscanf(dmy,"%d %d %d",&a,&b,&c);
printf("%s %s %d",d[a],m[b],c); // 列印出你要的 13rd Dec 2010
}
⑥ 簡單c語言字元串格式轉換--------------------------
#include<stdio.h>
intmain()
{chart[]="123456.00";
inti;
for(i=0;i<6;i++)
if(i%2&&i<5)printf("%c:",t[i]);
elseprintf("%c",t[i]);
return0;
}
⑦ C語言日期格式轉換
C里沒有相應的庫
但你可以用sprintf把各種數據以「 1980-01-02 02:03:55 」 這種標准格式,格式到一個字元串中就可以了
⑧ c語言 格式轉換符 %f %e %g 有什麼區別
%f 表示按浮點數的格式輸出
%e 表示按指數形式的浮點數的格式輸出
%g 表示自動選擇合適的表示法輸出
示常式序如下:
#include<stdio.h>
voidmain()
{
floatf=3.1415926;
printf("%f ",f);//輸出3.141593
printf("%e ",f);//輸出3.141593e+000
printf("%g ",f);//輸出3.14159
}