C++输入输出进制、数据宽度与对齐、精度、取整
生活随笔
收集整理的這篇文章主要介紹了
C++输入输出进制、数据宽度与对齐、精度、取整
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
cout<<setw(4)<<setfill('0')<<a<<endl;
樣例輸出 a=41輸出 0041
默認狀態下,數據按十進制輸入輸出。如果要求按八進制或十六進制輸入輸出,在cin或cout中必須指明相應的數據形式,oct為八進制,hex為十六進制,dec為十進制。
[轉載]未完的c++輸入輸出 舉例:
int i, j, k, l;
cout<<”Input i(oct), j(hex), k(hex), l(dec):”<<endl;
cin>>oct>>i; //輸入為八進制數
cin>>hex>>j; //輸入為十六進制數
cin>>k; //輸入仍為十六進制數
cin>>dec>>l; //輸入為十進制數
cout<<”hex:”<<”i=”<<hex<<i<<endl;
cout<<”dec:”<<”j=”<<dec<<j<<′t′<<”k=”<<k<<endl;
cout<<”oct:”<<”l=”<<oct<<l;
cout<<dec<<endl; //恢復十進制輸出狀態
【執行結果】:
(1)輸出提示:Input i(oct), j(hex), k(hex), l(dec):
(2)此時從鍵盤輸入: 032 0x3f 0xa0 17 <CR>
(3)輸出結果為:
hex:i=1a
dec:j=63 k=160
oct:l=21
[轉載]未完的c++輸入輸出 幾點說明:
[轉載]未完的c++輸入輸出 使用不帶.h的頭文件<iostream>時,必須在cin中指明數制,否則從鍵盤輸入時,不認八進制和十六進制數開頭的0和0x標志。指明后可省略0和0x標志。
[轉載]未完的c++輸入輸出 進制控制只適用于整型變量,不適用于實型和字符型變量。
[轉載]未完的c++輸入輸出 輸入數據的格式、個數和類型必須與cin中的變量一一對應,否則不僅使輸入數據錯誤,而且影響后面其他數據的正確輸入。
[轉載]未完的c++輸入輸出 在cin或cout中指明數制后,該數制將一直有效,直到重新指明使用其他數制。
◆ ?2、數據間隔與對齊
[轉載]未完的c++輸入輸出 常用設置方法:輸出空格符或回車換行符。
[轉載]未完的c++輸入輸出 指定數據輸出寬度:用C++提供的函數setw()指定輸出數據項的寬度。setw()括號中通常給出一個正整數值,用于限定緊跟其后的一個數據項的輸出寬度。如:setw(8)表示緊跟其后的數據項的輸出占8個字符寬度。
[轉載]未完的c++輸入輸出 舉例:
int i=2, j=3;
float x=2.6, y=1.8;
cout<<setw(6)<<i<<setw(10)<<j<<endl;
cout<<setw(10)<<i*j<<endl;
cout<<setw(8)<<x<<setw(8)<<y<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<i*j<<endl; //左對齊
則輸出結果為:
? ? ?2 ? ? ? ? 3
? ? ? ? ?6
? ? ?2.6 ? ? 1.8
[轉載]未完的c++輸入輸出 說明:
[轉載]未完的c++輸入輸出 如果數據的實際寬度小于指定寬度,按右對齊的方式在左邊留空,如果數據的實際寬度大于指定寬度,則按實際寬度輸出,即指定寬度失效。
[轉載]未完的c++輸入輸出 setw()只能限定緊隨其后的一個數據項,輸出后即回到默認輸出方式。
[轉載]未完的c++輸入輸出 使用setw()必須在程序開頭再增加一句: #include<iomanip>
//setiosflags(ios::right) ?右對齊 默認
//setiosflags(ios::left) ? 左對齊
?
3、數的精度控制
? ?#include ? <iostream> ?
? #include ? <iomanip> ?
? using ? namespace ? std; ?
? ?
? int ? main(void) ?
? { ? ? ?
? double ? pi ? = ? 3.1415926535897932384; ?
? double ? b ? = ? 3.1415926535897932384; ?
? cout<<setprecision(5)<<b<<endl ? ? ? ?//5位有效數字
? ?<<fixed<<setprecision(5)<<pi<<endl; ?//小數點后5位
? }
//保留精度時按四舍五入原則
?
? ?4、浮點數的取整
? ? ? ?C/C++取整函數ceil(),floor()
? ? ? ?double floor(double x);
? ? ? ?double ceil(double x);
? ? ? ?使用floor函數。floor(x)返回的是小于或等于x的最大整數。
? ? ? ?如: ? ? floor(10.5) == 10 ? ?floor(-10.5) == -11
? ? ? ?使用ceil函數。ceil(x)返回的是大于x的最小整數。
? ? ? ?如: ? ? ceil(10.5) == 11 ? ?ceil(-10.5) ==-10
? ?
? ? ? ?floor()是向負無窮大舍入,floor(-10.5) == -11;
? ? ? ?ceil()是向正無窮大舍入,ceil(-10.5) == -10
1、數的進制
[轉載]未完的c++輸入輸出 默認進制:默認狀態下,數據按十進制輸入輸出。如果要求按八進制或十六進制輸入輸出,在cin或cout中必須指明相應的數據形式,oct為八進制,hex為十六進制,dec為十進制。
[轉載]未完的c++輸入輸出 舉例:
int i, j, k, l;
cout<<”Input i(oct), j(hex), k(hex), l(dec):”<<endl;
cin>>oct>>i; //輸入為八進制數
cin>>hex>>j; //輸入為十六進制數
cin>>k; //輸入仍為十六進制數
cin>>dec>>l; //輸入為十進制數
cout<<”hex:”<<”i=”<<hex<<i<<endl;
cout<<”dec:”<<”j=”<<dec<<j<<′t′<<”k=”<<k<<endl;
cout<<”oct:”<<”l=”<<oct<<l;
cout<<dec<<endl; //恢復十進制輸出狀態
【執行結果】:
(1)輸出提示:Input i(oct), j(hex), k(hex), l(dec):
(2)此時從鍵盤輸入: 032 0x3f 0xa0 17 <CR>
(3)輸出結果為:
hex:i=1a
dec:j=63 k=160
oct:l=21
[轉載]未完的c++輸入輸出 幾點說明:
[轉載]未完的c++輸入輸出 使用不帶.h的頭文件<iostream>時,必須在cin中指明數制,否則從鍵盤輸入時,不認八進制和十六進制數開頭的0和0x標志。指明后可省略0和0x標志。
[轉載]未完的c++輸入輸出 進制控制只適用于整型變量,不適用于實型和字符型變量。
[轉載]未完的c++輸入輸出 輸入數據的格式、個數和類型必須與cin中的變量一一對應,否則不僅使輸入數據錯誤,而且影響后面其他數據的正確輸入。
[轉載]未完的c++輸入輸出 在cin或cout中指明數制后,該數制將一直有效,直到重新指明使用其他數制。
◆ ?2、數據間隔與對齊
[轉載]未完的c++輸入輸出 常用設置方法:輸出空格符或回車換行符。
[轉載]未完的c++輸入輸出 指定數據輸出寬度:用C++提供的函數setw()指定輸出數據項的寬度。setw()括號中通常給出一個正整數值,用于限定緊跟其后的一個數據項的輸出寬度。如:setw(8)表示緊跟其后的數據項的輸出占8個字符寬度。
[轉載]未完的c++輸入輸出 舉例:
int i=2, j=3;
float x=2.6, y=1.8;
cout<<setw(6)<<i<<setw(10)<<j<<endl;
cout<<setw(10)<<i*j<<endl;
cout<<setw(8)<<x<<setw(8)<<y<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<i*j<<endl; //左對齊
則輸出結果為:
? ? ?2 ? ? ? ? 3
? ? ? ? ?6
? ? ?2.6 ? ? 1.8
[轉載]未完的c++輸入輸出 說明:
[轉載]未完的c++輸入輸出 如果數據的實際寬度小于指定寬度,按右對齊的方式在左邊留空,如果數據的實際寬度大于指定寬度,則按實際寬度輸出,即指定寬度失效。
[轉載]未完的c++輸入輸出 setw()只能限定緊隨其后的一個數據項,輸出后即回到默認輸出方式。
[轉載]未完的c++輸入輸出 使用setw()必須在程序開頭再增加一句: #include<iomanip>
//setiosflags(ios::right) ?右對齊 默認
//setiosflags(ios::left) ? 左對齊
?
3、數的精度控制
? ?#include ? <iostream> ?
? #include ? <iomanip> ?
? using ? namespace ? std; ?
? ?
? int ? main(void) ?
? { ? ? ?
? double ? pi ? = ? 3.1415926535897932384; ?
? double ? b ? = ? 3.1415926535897932384; ?
? cout<<setprecision(5)<<b<<endl ? ? ? ?//5位有效數字
? ?<<fixed<<setprecision(5)<<pi<<endl; ?//小數點后5位
? }
//保留精度時按四舍五入原則
?
? ?4、浮點數的取整
? ? ? ?C/C++取整函數ceil(),floor()
? ? ? ?double floor(double x);
? ? ? ?double ceil(double x);
? ? ? ?使用floor函數。floor(x)返回的是小于或等于x的最大整數。
? ? ? ?如: ? ? floor(10.5) == 10 ? ?floor(-10.5) == -11
? ? ? ?使用ceil函數。ceil(x)返回的是大于x的最小整數。
? ? ? ?如: ? ? ceil(10.5) == 11 ? ?ceil(-10.5) ==-10
? ?
? ? ? ?floor()是向負無窮大舍入,floor(-10.5) == -11;
? ? ? ?ceil()是向正無窮大舍入,ceil(-10.5) == -10
轉載于:https://www.cnblogs.com/oversea201405/p/3766960.html
總結
以上是生活随笔為你收集整理的C++输入输出进制、数据宽度与对齐、精度、取整的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SugarSync网盘之XML解析
- 下一篇: mysql空间扩展 VS PostGIS