1. 程式人生 > >關於C++的輸入輸出格式%f和%lf的區別

關於C++的輸入輸出格式%f和%lf的區別

之所以寫這個,是因為在POJ上用%lf會爆炸..

首先,說明下,C++將實數分為單精度和高精度這些花裡胡哨的東西..
printf的說明符的確既可以輸出float型又可以輸出double型。
根據一種“預設引數提升”的睿智東西,float型在%f輸出時,會被提升為double型。因此使用printf只會看到雙精度數。
但作為printf的孿生兄弟scanf,情況就完全不同了,它接受指標,可這裡沒有類似的型別提升。向float儲存和向double儲存大不一樣。也就是不會出現提升的騷操作。因此,

scanf是要區別%f和%lf

最後,講一下總結出來的東西:

不管你三七二十一,只要用printf輸出實數,直接用%ff就好了。而當你用scanf讀入實數,就不得不把%f%lf分好了

相關推薦

關於C++的輸入輸出格式%f%lf區別

之所以寫這個,是因為在POJ上用%lflf會爆炸.. 首先,說明下,C++C++將實數分為單精度和高精度這些花裡胡哨的東西.. printfprintf的說明符的確既可以輸出floatfl

C++輸入輸出格式控制

1、數的進位制 預設進位制: 預設狀態下,資料按十進位制輸入輸出。如果要求按八進位制或十六進位制輸入輸出,在cin或cout中必須指明相應的資料形式,oct為八進位制,hex為十六進位制,dec為十進位制。 int i, j, k, l; cout<<”Inp

C++ 輸入輸出格式 與 精度問題

使用printf(): int myCost_1 = 10; int myCost_2 = 234; printf("%.3f\n", myCost_1 / 100.0);//商 保留三位小數

C++輸入輸出流加速器,關閉同步流,ios::sync_with_stdio(false) cin.tie(0)

bsp c++ 語句 leetcode return ios 使用 而不是 關閉 leetcode練習時,總會發現運行時間短的代碼都會有類似: static int x=[](){ std::ios::sync_with_stdio(false); cin

C++輸入輸出常用格式(cin,cout,stringstream)

運行 例如 per .get 風格 這也 顯示 運用 控制 輸入格式   1、cin>>a; 最基本的格式,適用於各種類型。會過濾掉不可見字符例如空格,TAB,回車等   2、cin>>noskipw

C++標準輸入輸出格式控制(進位制)

從HDU--2057題說起 剛開始做,以為這題是大數加減問題,試了半天發現太複雜,要考慮的因素太多,後來知道long long能表示16位十六進位制的整數,題目中為15位,可以直接加減,百度了一下輸入輸出十六進位制的格式,還有十六進位制的負數輸出的是其補碼,故要判斷結果

C++ 輸入輸出檔案輸入輸出

輸出到檔案 #include <iostream> #include <fstream> using namespace std; int i = 100; ofstream file("1.txt"); //檔案輸出物件,檔名

關於輸出%f%lf的問題

C++果然是非常微妙的語言,%f和%lf對於printf()和scanf()的效果是不同的 #include<stdio.h> int main() { float n; scanf("%lf",&n); printf("%f",n);

c++中輸出流coutcerr及clog的區別

本人菜雞一個,初識c++,從深鑑科技給的main.cc檔案中開始學習c++,不懂輸出流控制,在網上查了資料後整理的:c語言標準輸出就printf一個,但是c++意思就是c的加強版唄,當然輸出自然可以多一點,有cout、cerr、clog,區別就在於三個都能做輸出,但是cout

C++輸入輸出格式控制1

》預設的輸入輸出格式         在沒有特地進行格式控制的情況下,輸入輸出採用預設格式。         >預設的輸入格式         C++流所識別的輸入資料的型別及其預設的輸入格式:               # short   、int    、lon

C++ 輸入輸出流之檔案操作檔案流

使用成員函式read和write讀取二進位制檔案 istream &read(char *buffer, int len);ostream& write(constchar *buffer, int len)舉例:將一批資料存入磁碟檔案 student stu[2] = {{"Li", 100

c語言中輸入輸出格式的控制

一、輸入格式的控制 scanf函式中格式字元: (1)d,i:用來輸入有符號的十進位制中 (2) u:用來輸入無符號的十進位制整數 (3)o:用來輸入無符號的八進位制整數 (4)x,X:用來輸入無符號的十六進位制整數(大小寫作用相同) (5)c:用來輸入單個符號  (6)

C/C++ 輸入輸出緩衝區在WindowsLinux下對比

C++中cin、cout,cerr和C的stdin、stdout、stderr都是同步的,即iostream 物件和 and cstdio流是同步的,同步關係如下: 同步即表明我們可以在程式中混合用cout和printf或其他對應的流對。可以用std::ios

C/C++標準輸入輸出格式控制

1、c語言輸入輸出格式控制 (1)輸入格式控制–scanf() 語法: #include <stdio.h> int scanf( const char *format, ... ); scanf()函式根據由format(格式)指定的

%f%lf區別

    %lf和%f 在scanf函式和printf函式看來是不一樣的      首先printf無論是%f還是%lf沒有區別,因為當printf函式當遇到float型別時會自動轉化為double,從c語言標準來說printf並沒有%lf的定義,雖然大多數編譯器都能接受,但

c/c++輸入輸出流iostream與stdio之間的區別

三者之間的區別  #include<iostream>     在新的標準C++中使用。#include<iostream>是標準的C++標頭檔案,任何符合標準的C++開發環境都要有這個標頭檔案,使用時一定要引入名稱空間"using namespa

C++輸入輸出函數用法

不可見 不想 logs 跳過 沒有 三個參數 兼容 語言 stream 註:本文修改自http://blog.csdn.net/fenxinzi557/article/details/52222290 1、cin 2、cin.get() 3、cin.getline()

C語言輸出格式總結

輸出 無符號 分享 字符串 image 輸出字符串 轉義 輸出符 連續 1 一般格式 printf(格式控制,輸出表列) 例如:printf("i=%d,ch=%c\n",i,ch); 說明: (1)“格式控制”是用雙撇號括起來的字符串,也稱“轉換控

CC++輸入輸出

函數功能 oid 輸入 缺省 char void sin 溢出 urn C語言: 1. scanf printf %c %s %d %lld scanf %s 遇見“ ”或者回車等就結束 scanf %c 可以讀取空格; 2. ge

關於scanf 與 cin gets(),getline()......輸入輸出字符串的區別

區別 scan 輸出字符串 回車 需要 輸入流 相同 count getline 很對人對於字符串的輸入輸出一直是比較模糊的,今天總結一下幾個常用的輸入流符號對於輸入字符串時的區別: 1.scanf(),首先 它遇到空格或回車鍵(\n)就會結束,並且會將回車符算入字符串中