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