C語言中printf()函數(shù)的全面介紹及用法(簡單易懂)
【說明】這是 C語言中的輸出函數(shù),當然在 C++ 中也可以使用,只是有的需要改變一下形式,下面會提及,C++中一般使用 cout。(這里篇幅比較長,可以收藏一下哦)
一:頭文件
printf()函數(shù)的頭文件是 <stdio.h>。
二:格式控制字符串
格式控制字符串就是用雙引號括起來的字符串,包括三類:
1.格式字符。
格式字符是由 "%" 引導,它是用來控制輸出字符的格式。有這個字符串時,必須要保持輸出值參數(shù)表中的數(shù)量和類型格式與格式字符一致,否則輸出的值可能不是我們想要的。
| 格式字符說明 | |
| %c | 字符型 |
| %d | 十進制數(shù) |
| %i | 讀入十進制、八進制、十六進制數(shù),輸入的時候正常是十進制,若輸入0前綴的數(shù)將讀入八進制,0X前綴讀入16進制 |
| %f | float型浮點數(shù) |
| %o | 八進制 |
| %s | 字符串,碰到空格或回車結束 |
| %x | 16進制 |
| %p | 指針 |
| %n | 至此已讀入值的等價字符數(shù) |
| %lf | double型浮點數(shù) |
2.轉義字符。
按照轉義后的含義輸出,比如 "\n" ,意思是輸出后換行。
3.普通字符。
意思是需要在輸出時原樣輸出的字符,比如下面代碼中的 "a="。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a=31;
printf("a=%d",a);// a是int型整數(shù),所以用 %d
}【輸出結果】

三:格式字符輸出示例
1. %c-----------輸出字符
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char ch='d';
printf("%c",ch);
} 【輸出結果】

2. %s-----------輸出字符串
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
printf("%s","Hello World!");
} 【輸出結果】

【注意】上述是 C語言的寫法,當你在C++中用 printf()時,下面的寫法肯定是錯誤的,因為 printf()函數(shù)不支持 std::string 類型,它期望的是 C 風格的字符串。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
string str="Hello World!";
printf("%s",str);
}那么要怎么改呢?std::string 類提供了一個成員函數(shù) c_str(),該函數(shù)返回一個指向以 null 結尾的字符數(shù)組的指針(即 C 風格的字符串),這個數(shù)組包含了字符串的內容。這個指針可以被 printf()函數(shù)接受。
【代碼如下】
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
string str="Hello World!";
printf("%s",str.c_str());
}
【輸出結果】

【說明】其實關于 std::string 中的 c_str()函數(shù),也有很多類似用處,比如——atoi()函數(shù),atoi()函數(shù)可以將字符串轉化成 int 型整數(shù),這在字符串相關問題中是比較常用的,還是掌握一下比較好,具體的可以點進我的主頁中,里面的一篇文章詳細介紹了這個函數(shù)以及其他字符串中常用的函數(shù)。當轉換 std::string 類型的字符串時就要用 c_str()函數(shù)。
四:還可以指定輸出數(shù)據(jù)的指定數(shù)據(jù)寬度和小數(shù)位數(shù),即 %m.nf。
1.其中 m 表示輸出數(shù)據(jù)的寬度,即占 m 列,n 表示小數(shù)點后保留 n 位小數(shù),如題目中沒有強調輸出數(shù)據(jù)的寬度,直接 %.nf 即可。
【代碼如下】
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
double a=3.7839127;
printf("%8.4f\n",a);
} 【運行結果】

可以從結果中看出,輸出的數(shù)據(jù)保留了四位小數(shù),而且數(shù)據(jù)前有兩個空格,還有換行。(還有 double 型數(shù)只能保證15位有效小數(shù),即使指定小數(shù)位數(shù)為20或其他超過15的,比如 %.20f,也不能保證輸出的20位小數(shù)都是有效數(shù)值)
【說明】保留小數(shù)還可以用 setprecision(n),n 是要保留的小數(shù)位數(shù),注意前面要加上 fixed。比如,cout<<fixed<<setprecision(5)<<num;意思是保留 num 的五位小數(shù)并輸出。
2.在 m.nf 前面加上一個負號,可以讓輸出的數(shù)據(jù)在域內向左靠齊。以上面代碼為例。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
double a=3.7839127;
printf("%-8.4f\n",a);
} 【運行結果】

五:printf()函數(shù)中的格式修飾符
1.字母 l 修飾字符 f、e、g 時,用于輸出 long double 型數(shù)據(jù)。
2.字母 i 修飾字符 d、u、o、x 時,用于輸出 long 型數(shù)據(jù)。
3.字母 h 修飾字符d、o、x 時,用于輸出 short 型數(shù)據(jù)。
4.還有上面提到的 輸出域寬m、顯示精度n、(m、n都是整數(shù)),以及減號 -(輸出數(shù)字或字符 ,在域內向左靠)。
六:printf()函數(shù)的返回值
這個其實用的并不多,也可以了解一下。
printf()函數(shù)返回值 int型,也就是說在進行嵌套使用時,它的打印格式是 %d。它返回的內容就是打印字符的個數(shù)。下面會舉兩個例子來說明。
【樣例一】
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
printf("%d",printf("%d",printf("%d",54)));
return 0;
}【輸出結果】

先輸出54,因為 printf("%d,54)打印出來的是兩個字符,所以 printf("%d",printf("%d",54))輸出的是2,同理,最終輸出的是5421。
【樣例二】
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
printf("%d ",printf("%d ",printf("%d ",54)));
return 0;
}【輸出結果】

這個和上面的差不多,只是 %d 后面有了一個空格,所以導致輸出了 “54 3 2 ”。
總結
到此這篇關于C語言中printf()函數(shù)的全面介紹及用法的文章就介紹到這了,更多相關C語言中printf()函數(shù)用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pandas中.loc和.iloc以及.at和.iat的區(qū)別說明
這篇文章主要介紹了pandas中.loc和.iloc以及.at和.iat的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
pybaobabdt庫基于python的決策樹隨機森林可視化工具使用
這篇文章主要為大家介紹了pybaobabdt庫基于python的決策樹隨機森林可視化工具使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-02-02
使用Python腳本實現(xiàn)批量網站存活檢測遇到問題及解決方法
本文是小編自己編寫的一個使用python實現(xiàn)批量網站存活檢測。在項目測試中非常有用。本文給大家分享了遇到的問題及解決方案,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-10-10

