c語言格式控制符c
① c語言中控制符,格式符以及修飾符是什麼東西 分別有什麼功能
格式符其實是佔位符,它後面對應的數據實際上是堆棧,具體可以先學數據結構;至於轉義字元什麼的,一般的編程語言中都有,主要是為了與語言使用的字元相區別
② c語言中,格式控制符,e如何正確使用
%e是用來輸出浮點數的,輸出結果為科學計數法形式。
直接用就好
prinf("%e",1234.234);
類似這樣就可以了。
和%f什麼的沒什麼區別。
③ c語言中用來輸入單個字元的格式控制符是
是說 scanf printf 里用的 %c 嗎?
④ c語言中,每一種輸入控制符可以用來輸入哪種數據類型
scanf("%lf",&x);是輸入,%後,lf表述double類型的輸入,f表示float類型的輸入("sineof%lfis%lf\n",x,s),是輸出%lf是double類型的輸出scanf(格式控制,地址表列)intscanf(char*format[,argument,]);「格式控制」的含義同printf函數;「地址表列」是由若干個地址組成的表列,可以是變數的地址,或字元串的首地址。scanf()函數返回成功賦值的數據項數,讀到文件末尾出錯時則返回EOF。格式控制有:%a,%A讀入一個浮點值(僅C99有效)%c讀入一個字元%d讀入十進制整數%i讀入十進制,八進制,十六進制整數%o讀入八進制整數%x,%X讀入十六進制整數%s讀入一個字元串,遇空格、製表符或換行符結束。%f,%F,%e,%E,%g,%G用來輸入實數,可以用小數形式或指數形式輸入。%p讀入一個指針%u讀入一個無符號十進制整數%n至此已讀入值的等價字元數%[]掃描字元集合%%讀%符號printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。在編寫程序時經常會用到此函數。函數的原型為:intprintf(constchar*format,);函數返回值為整型。若成功則返回輸出的字元數,輸出出錯則返回負值。printf()函數的調用格式為:printf("",);其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。格式字元串,包括各種字元和格式控制符,格式控制符,和前面的一樣,
⑤ C語言的所有格式符。
一、格式符含義
1、d格式符:按十進制格式輸出。
%d 輸出數字長度為變數數值的實際長度
%md 輸出m位(不足補空格,大於m位時按實際長度輸出)
%ld,%mld l(小寫字母L)表示輸出「長整型」數據
%0md,%0mld 0(數字0)表示位數不足m時補0
註:%後面的m(位數控制)、0(位數不足補0)對於其他格式符也適用。
例:(□表示空格)
int i=123;
long j=123456;
printf("%d□5d□05d,□ld□8ld□08ld",i,i,i,j,j,j);
輸出:123□□□123□00123,□123456□□□123456□00123456
2、o(字母)格式符:按八進制格式輸出。(不會出現負數格式)
3、x格式符:按十六進制格式輸出。(不會出現負數格式)
4、u格式符:用於輸出unsigned類型數據。
例:main()
{
unsigned int a=65535;
int b=-2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("a=%d,%o,%x,%u\n",b,b,b,b);
}
輸出:a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
5、c格式符:以字元形式輸出。
6、s格式符:以字元串格式輸出。
例:printf("%s","CHINA");
%ms m指定寬度(不足時左補空格,大於時按實際寬度輸出)
%-ms 左對齊,不足m時右補空格
%m.ns 輸出佔m個字元位置,其中字元數最多n個,左補空格
%-m.ns 同上,右補空格
7、f格式符:按實數格式輸出。
%f 按實數格式輸出,整數部分按實際位數輸出,6位小數
%m.nf 總位數m(含小數點),其中n位小數
%-m.nf 同上,左對齊
例:main()
{ float x, y;
x=111111.111; y=222222.222;
printf("%f", x+y);
}
程序輸出: 333333.328152(實數運算中誤差不可避免)
例:main()
{ double x,y; double x2,y2;
x=1111111111111.111111111; y=2222222222222.222222222;
x2=1111111111111.111; y2=2222222222222.222;
printf("%f %f", x+y, x2+y2); /* 13位整數,9位小數 */
}
程序輸出: 3333333333333.333010 3333333333333.333010(相同)
注意
從以上兩例可以看出,實數運算中誤差不可避免,double比float精度高。
float實數(單精度)的有效位數是7位,double實數(雙精度)的有效位數是16位,超過有效位數的輸出和輸入均無意義。
例:
main()
{ float f=123.456;
printf("%f□□%10f□□%10.2f□□%.2f□□%-10.2f",f,f,f,f,f);
}
輸出結果:
123.455994□□123.455994□□□□□□123.46□□123.46□□123.46
8、e格式符:以指數形式輸出實數。%e 輸出13位,其中:1位整數,1位小數點,6位小數,5位指數(含字元e和指數的符號)
9、g格式符:根據數值大小,自動選擇f或e格式輸出。
二、使用注意
1、%是printf()的格式說明符,若要直接輸出字元%,在格式控制中使用兩個連續的%。
例:printf("%f%%", 1.0/3) 輸出: 0.333333%。
2、通常在有格式字元o和x按八進制和十六進制形式輸出整數時,在數值前不出現0和0x,可在%和格式字元間插入#來實現。
例:printf(「%o,%#o,%x,%#x\n」,10,10,10,10);
輸出:12,012,a,0xa
3、指定輸出寬度的同時指定左對齊可在寬度前插入「—」來實現。
⑥ C語言輸出字元或者字元串的格式控制符有哪些
LZ剛剛還舉了個例子是:printf("%*c",i,ch)其中i為整型ch為字元型。在這里
*
的作用是輸出寬度修飾符。比如:i=3,ch='a';那麼printf("%*c",i,ch);
輸出地就是「空格空格a」。i=3表示輸出地字元串佔3位。請看例子:
⑦ c語言:格式輸出的格式控制符,%s的用法
s格式符,輸出一個字元串.
⑴%s,如printf("%s","CHINA")
⑵%ms,輸出的字元串佔m列,字元串長度小於m,左邊補空格,如果超出則全部輸出.
⑶%-ms,串小於m,則在m列范圍內字元串左靠,右補空格.
⑷%m.ns,輸出佔m列,但只取字元串左端n個字元.這n個字元輸出在m列的右邊,然後左邊補空格.
⑸%-m.ns,和上面的放下,就是n個字元輸出在m列的左側,右邊補空格.n>m,那麼m自動取n的值,既保證n個字元正常輸出.
⑧ c語言中 那個格式控制字元串 可以輸入數字和字元
scanf():通過格式控制符%s輸入字元串。除了字元串,scanf()還能輸入其他類型的數據。scanf()讀取字元串時以空格為分隔,遇到空格就認為當前字元串結束了,所以無法讀取含有空格的字元串。
gets():直接輸入字元串,並且只能輸入字元串。gets()認為空格也是字元串的一部分,只有遇到回車鍵時才認為字元串輸入結束,所以,不管輸入了多少個空格,只要不按下回車鍵,對gets()來說就是一個完整的字元串。換句話說,gets()用來讀取一整行字元串。
(8)c語言格式控制符c擴展閱讀
scanf()和gets()的使用:
#include<stdio.h>
intmain(){
charstr1[30]={0};
charstr2[30]={0};
charstr3[30]={0};
//gets()用法
printf("Inputastring:");
gets(str1);
//scanf()用法
printf("Inputastring:");
scanf("%s",str2);
scanf("%s",str3);
printf(" str1:%s ",str1);
printf("str2:%s ",str2);
printf("str3:%s ",str3);
return0;
}
⑨ c語言中的%f格式控制符
float精度問題,float只有6到7位有效數字。
類型 比特(位)數 有效數字 數值范圍
float 32 6~7 -3.4E-38~3.4E38
double 62 15~16 -1.7E-308~1.7E308