《C和C++代码精粹》——1.7 类型安全I/O
生活随笔
收集整理的這篇文章主要介紹了
《C和C++代码精粹》——1.7 类型安全I/O
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本節(jié)書摘來自異步社區(qū)出版社《C和C++代碼精粹》一書中的第1章第1.7節(jié),作者: 【美】Chuck Allison,更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看。
1.7 類型安全I(xiàn)/O
C和C++代碼精粹
當(dāng)然每個C程序員都曾經(jīng)使用過printf的錯誤格式描述符號。對printf來說沒有辦法檢查所傳遞的數(shù)據(jù)項是否與字符串格式匹配。
程序清單1.4 一個說明引用調(diào)用的交換函數(shù)
// swap.cpp #include <stdio.h> void swap(int &, int &); main() {int i = 1, j = 2;swap(i,j);printf("i == %d, j == %d\n", i, j); } void swap(int &x, int &y) {int temp = x;x = y;y = temp; } //輸出: i == 2, j == 1做如下事情的頻率如何?僅僅是在運行時發(fā)現(xiàn)問題?
double d; … printf("%d\n",d);/*嘿!本應(yīng)該用%f*/換句話說,C++流庫使用一個對象的類型來決定正確的格式:
double d; … cout<<d<<endl;//不會失敗的表達(dá)式cout<
double x = 1.5, y = 2.5; //從現(xiàn)在起保留小數(shù)點后兩位 cout.precision(2); //保持小數(shù)點后的0 cout.setf(ios::showpoint); cout<<x<<'\n'; //打印1.50 cout<<y<<'\n'; //打印2.50本文僅用于學(xué)習(xí)和交流目的,不代表異步社區(qū)觀點。非商業(yè)轉(zhuǎn)載請注明作譯者、出處,并保留本文的原始鏈接。
總結(jié)
以上是生活随笔為你收集整理的《C和C++代码精粹》——1.7 类型安全I/O的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php如何设计一个日志类,一个简单php
- 下一篇: springMvc 传子 bean