為什么不能用puts代替printf
#include <stdio.h>?????? /*這里的好像缺少頭文件哦!*/
int main()??????????????? /*這里沒有主函數(shù)名稱的*/
{
? ? ? puts/*用這個代替printf不行嗎*/("I love imooc!");??? /*看一下這里的打印語句是否正確*/?
??? return 0;
}
#include <stdio.h>?????? /*這里的好像缺少頭文件哦!*/
int main()??????????????? /*這里沒有主函數(shù)名稱的*/
{
? ? ? puts/*用這個代替printf不行嗎*/("I love imooc!");??? /*看一下這里的打印語句是否正確*/?
??? return 0;
}
2017-12-20
舉報
2017-12-20
兩者的區(qū)別在于puts的功能更單一,只能輸出字符串,而printf可以根據(jù)給定的格式輸出多種類型的數(shù)據(jù)。
1、puts()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫字符串并換行,其調(diào)用方式為,puts(s);其中s為字符串字符(字符串?dāng)?shù)組名或字符串指針)。
1
2
3
4
5
6
7
? ?
#include?<stdio.h>
int?main()
{
????char?string[]?=?"This?is?an?example?output?string\n";
????puts(string);
????return?0;
}
? ?
2、printf()函數(shù)是格式化輸出函數(shù), 一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。
printf()函數(shù)的調(diào)用格式為: printf("<格式化字符串>", <參量表>)。
格式輸出,它是c語言中產(chǎn)生格式化輸出的函數(shù)(在?stdio.h?中定義)。用于向終端(顯示器、控制臺等)輸出字符。格式控制由要輸出的文字和數(shù)據(jù)格式說明組成。要輸出的的文字除了可以使用字母、數(shù)字、空格和一些數(shù)字符號以外,還可以使用一些轉(zhuǎn)義字符表示特殊的含義。
示例:通過printf函數(shù)輸出字符串、有符號整數(shù)、單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù)。
1
2
3
4
5
6
? ?
#include<stdio.h>
int?main()
{
printf("%s\t%d%\t%f\t%e\n",?"hello?world",?1,?1.1f?,?1.1);???
return?0;
}
? ?
3、printf控制字符的格式:
?、?d格式:用來輸出十進(jìn)制整數(shù)。有以下幾種用法:
%d:按整型數(shù)據(jù)十進(jìn)制的實際長度輸出。
%md:m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實際位數(shù)輸出。
%ld:輸出長整型數(shù)據(jù)。
② o格式:以無符號八進(jìn)制形式輸出整數(shù)。
%d:按整型數(shù)據(jù)八進(jìn)制的實際長度輸出。
%lo:對長整型可以用格式輸出
%mo:指定字段寬度用格式輸出
③ x格式:以無符號十六進(jìn)制形式輸出整數(shù)。
%x:按整型數(shù)據(jù)十六進(jìn)制的實際長度輸出。
%lx:對長整型可以用格式輸出
%mx:指定字段寬度用格式輸出
?、?u格式:以無符號十進(jìn)制形式輸出整數(shù)。
%u:按無符號整型數(shù)據(jù)十進(jìn)制的實際長度輸出。
%lu:對長整型可以用格式輸出
%mu:指定字段寬度用格式輸出
?、?c格式:輸出一個字符。
⑥ s格式:用來輸出一個串。有幾中用法
%s:例如:printf("%s", "CHINA")輸出"CHINA"字符串(不包括雙引號)。
%ms:輸出的字符串占m列,如字符串長度大于m,將字符串全部輸出。若串長小于m,則左補(bǔ)空格。
%-ms:如果串長小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。
%m.ns:輸出占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側(cè),左補(bǔ)空格。
%-m.ns:其中m、n含義同上,n個字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果n>m,則自動取n值,即保證n個字符正常輸出。
?、?f格式:用來輸出實數(shù)(包括單、雙精度),以小數(shù)形式輸出。有以下幾種用法:
%f:不指定寬度,整數(shù)部分全部輸出并輸出6位小數(shù)。
%m.nf:輸出共占m列,其中有n位小數(shù),如數(shù)值寬度小于m左端補(bǔ)空格。
%-m.nf:輸出共占n列,其中有n位小數(shù),如數(shù)值寬度小于m右端補(bǔ)空格。
⑧ e格式:以指數(shù)形式輸出實數(shù)??捎靡韵滦问剑?/p>
%e:數(shù)字部分(又稱尾數(shù))輸出6位小數(shù),指數(shù)部分占5位或4位。
%m.ne和%-m.ne:m、n和”-”字符含義與前相同。
此處n指數(shù)據(jù)的數(shù)字部分的小數(shù)位數(shù),m表示整個輸出數(shù)據(jù)所占的寬度。
?、?p格式:輸出指針地址
https://www.zhihu.com/question/35991560