C++大學基礎(chǔ)教程第2章_第1頁
C++大學基礎(chǔ)教程第2章_第2頁
C++大學基礎(chǔ)教程第2章_第3頁
C++大學基礎(chǔ)教程第2章_第4頁
C++大學基礎(chǔ)教程第2章_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C++大學基礎(chǔ)教程第2章基本數(shù)據(jù)類型與表達式

北京郵電大學信通院 網(wǎng)絡(luò)搜索中心2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-2-問題1、一個程序一般需要有3個部分輸入從鍵盤、文件讀取數(shù)據(jù),保存在內(nèi)存中處理將內(nèi)存中的數(shù)據(jù)進行計算或邏輯分析輸出將結(jié)果顯示在屏幕上或輸出到文件中cincout2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-3-舉例1、從鍵盤任意輸入兩個整數(shù),并求和。2、從鍵盤任意輸入兩個實數(shù),并求和。程序中使用的數(shù)據(jù)保存在內(nèi)存中,

1、分配多大的空間存儲數(shù)據(jù)?

2、如何標識數(shù)據(jù)在內(nèi)存的地址?

3、如何進行復雜的運算?數(shù)據(jù)類型變量和常量變量、常量和運算符組成的表達式第2章基本數(shù)據(jù)類型與表達式2.1詞法記號和標識符2.2基本數(shù)據(jù)類型2.3變量和常量2.4運算符和表達式2.5基本輸入輸出2.1詞法記號和標識符

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-7-2.1詞法記號和標識符1、C++字符集英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:+-*/%^=<>!#& |_~ \‘“;. ,()[] {}空格2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-8-2.1詞法記號和標識符單詞關(guān)鍵字:系統(tǒng)預定義的單詞標示符:用戶自定義的單詞注意:

C++的表示符是大小寫敏感的,即abc≠ABC。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-9-2.1詞法記號和標識符4、分隔符

分隔符用于分隔程序中的正文,在C++中使用下列字符作為分隔符:

(){} , : ;5、空白在C++語句中經(jīng)常出現(xiàn)空白(制表符、空格、空行)等,通常都忽略不計。2.2基本數(shù)據(jù)類型

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-11-2.2、基本數(shù)據(jù)類型基本數(shù)據(jù)類型

整型: int

字符型:char、wchar_t

實型: float、double

邏輯型:bool自定義數(shù)據(jù)類型

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-12-2.2、基本數(shù)據(jù)類型修飾符

進一步準確描述數(shù)據(jù)的大小和類型

1、長型long2、短型short3、有符號signed4、無符號unsigned2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-13-2.2、基本數(shù)據(jù)類型問題[-128,127] 范圍的整數(shù)?char[-32768,32767]范圍內(nèi)的整數(shù)?short[-231,231-1] 范圍內(nèi)的整數(shù)?intlong[0,232-1] 范圍內(nèi)的整數(shù)?unsignedint2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-14-2.2、基本數(shù)據(jù)類型注意

整型int的長度等于機器的字長:16位機:int=2字節(jié);32位機:int=4字節(jié)。但是short和long表示的數(shù)據(jù)長度是固定的,任何支持標準C++的編譯器都是如此,因而如果需要編寫可移植性好的程序,應(yīng)將整型聲明為short或long。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-15-2.2、基本數(shù)據(jù)類型例題

編寫一個程序,輸出基本數(shù)據(jù)類型char,int,float,double,bool的長度。提示:使用sizeof(數(shù)據(jù)類型)能夠獲取不同數(shù)據(jù)類型的長度。//輸出基本數(shù)據(jù)類型的長度#include<iostream>usingnamespacestd;voidmain(){ cout<<“char:”<<sizeof(char)<<“字節(jié)\n"; cout<<"int:"<<sizeof(int)<<"字節(jié)\n"; cout<<"float:"<<sizeof(float)<<"字節(jié)\n"; cout<<"double:"<<sizeof(double)<<"字節(jié)\n"; cout<<"bool:"<<sizeof(bool)<<"字節(jié)\n";}2.3變量和常量

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-18-2.3變量和常量 什么是變量?

在C++中,變量是存儲信息的地方。變量的實質(zhì)是內(nèi)存中的一個地址空間,在這個地址空間中可以進行數(shù)據(jù)的存儲和讀取。變量和常量的區(qū)別變量中的數(shù)據(jù)可以改變,而常量不行。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-19-2.3變量變量定義:

inta,b,c;int a=0; floatf1,f2; charch;常量定義:

constinta=10;例2.2:賦值運算符的使用

#include<iostream>

usingnamespacestd;

voidmain(){

intx,y;cin>>x>>y;//輸入3、5cout<<x+y<<endl;cin>>x>>y;//輸入6、8cout<<x+y<<endl;}運行結(jié)果:8142023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-21-2.3關(guān)鍵字typedef

為已有的數(shù)據(jù)類型定義一個同義詞,或者叫做別名。例如:

typedefunsignedintUINT;

關(guān)鍵字數(shù)據(jù)類型別名賦值注意:

使用typedef定義同義詞時并不分配內(nèi)存空間。2.3關(guān)鍵字define在C語言中使用預編譯指令#define定義常量。例如:

#definePI3.1415927

關(guān)鍵字常量名值

該語句屬于預編譯指令,不屬于C++語句,因而行尾不需要使用分號。功能同constdoublePI=32/1北京郵電大學電信工程學院計算機技術(shù)中心-23-2.3常量整型常數(shù)十進制數(shù):1008進制數(shù):

014416進制數(shù):0x64實型常數(shù)0.123、23.12123e5或123E5(表示123*105)

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-24-2.3常量字符常數(shù)1、例如:‘a(chǎn)’、‘?’。2、轉(zhuǎn)義字符例如:\n、\t、\a字符串常量由一對雙引號括起來的字符序列,例如:“howdoyoudo?”“helloworld!”\a 0x07 bell(響鈴)\n 0x0A 換行\(zhòng)r 0x0D 回車\t 0x09 制表符\v 0x0B 垂直跳格\b 0x08 Backspace\\ 0x5C ‘\’\" 0x22 雙引號\‘ 0x27 單引號\ddd1-3位8進數(shù)\xhh1-2位16進數(shù)例2.3:打印特殊字符#include<iostream>usingnamespacestd;voidmain(){cout<<“輸出字母:”<<‘a(chǎn)’<<’\a’<<endl;cout<<“輸出字母:”<<‘n’<<’\n’;}運行結(jié)果:輸出字母:a(蜂鳴器響一聲)輸出字母:n(換行)2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-27-2.3常量字符變量

charch1=‘a(chǎn)’,ch2=97,ch3=0x61;

原因:在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲,即以整數(shù)表示,所以,C++中字符數(shù)據(jù)和整數(shù)可以相互賦值。例2.4:字符數(shù)據(jù)和整型數(shù)據(jù)的轉(zhuǎn)換#include<iostream>usingnamespacestd;voidmain(){charch=’a’;charch1=97;cout<<”輸出內(nèi)容:”<<ch<<endl;cout<<”輸出內(nèi)容:”<<ch1<<endl;}運行結(jié)果:輸出內(nèi)容:97輸出內(nèi)容:a注意:變量在輸出時,根據(jù)其本身的數(shù)據(jù)類型進行輸出。例2.4:分析下面的輸出?#include<iostream>usingnamespacestd;voidmain(){intn=’a’;intn1=97;cout<<”輸出內(nèi)容:”<<n<<endl;cout<<”輸出內(nèi)容:”<<n1<<endl;}運行結(jié)果:輸出內(nèi)容:?輸出內(nèi)容:?2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-30-2.3常量字符和字符串的區(qū)別

1、字符常量和字符串常量是不同的,字符串常量以‘\0’結(jié)尾。例如:字符串Hello在內(nèi)存中的形式:

2、“a”不等于‘a(chǎn)’,”a”占2個字節(jié),‘a(chǎn)’1個字節(jié)Hello\0a\0a2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-31-2.3常量字符串變量

chara[20]=“Helloworld\n”;charb[5]=“a”;

charc=‘a(chǎn)’;思考

字符串“\x07Operating\tsystem”

有幾個字符?顯示結(jié)果如何?

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-32-2.3常量邏輯常數(shù)邏輯型常數(shù)只有兩個:false(假)和true(真)。在顯示器上顯示為0和1。2.4運算符和表達式例如:

inta=3,b=5,c=6;

intx=(a+b)*c//表達式

2.4運算符和表達式2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-35-2.4運算符和表達式語句和塊

表達式和結(jié)尾的“;”組成一個C++語句;多條C++語句通過大括號{}括起來,組成一個塊語句,例如:

{

inttemp=x; x=y; y=temp; }

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-36-2.4運算符和表達式根據(jù)功能劃分1、算術(shù)運算符(+-*/++--+=…)2、關(guān)系運算符(><>=<=!===)

3、邏輯運算符(!&&||)4、位運算符(<<>>~|&^)5、特殊運算符:條件運算符、逗號運算符2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-37-2.4運算符和表達式賦值運算符1、賦值運算符就是“=”例如:floatf=3.152、左值:可以合法的放在“=”左邊的操作數(shù)右值:可以合法的放在“=”右邊的操作數(shù)常量都是右值,所以不能夠放在“=”的左邊被賦值;變量既是左值又是右值,可以放在任何位置。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-38-2.4運算符和表達式算術(shù)運算符

C++提供的算術(shù)運算符包括“+,-,*,/,%,++,--”1、二元運算符:

+(加),-(減),*,/,%2、一元運算符:

+(正號),-(負號),++,--2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-39-2.4運算符和表達式算術(shù)運算符

注意:1、“/”根據(jù)操作數(shù)不同,運算規(guī)律也不同: 整型數(shù)為整除運算:例如5/2=2; 浮點數(shù)為通常意義的除法:即5.0/2.0=2.5。2、“%”取余數(shù)運算符,只能對整型數(shù)進行操作,不允許對浮點數(shù)進行操作。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-40-2.4運算符和表達式算術(shù)運算符

C++中提供了兩個特殊的運算符:++,--表示將操作數(shù)減1。++、--運算符根據(jù)操作數(shù)的位置不同,又稱為前置(++i)和后置(i++)1、前置(++i):先自身加1,然后再將加1的值作為(++i)表達式的值;2、后置(i++):將i作為(i++)表達式的值,然后自身再加1。

例2.6:自增運算符的使用

#include<iostream>usingnamespacestd;voidmain(){ inti=1; cout<<”i=”<<i<<endl; cout<<”i++:”<<i++<<endl; cout<<”i=”<<i<<endl; cout<<”++i:”<<++i<<endl; cout<<”i=”<<i<<endl;}112332023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-42-2.4運算符和表達式算術(shù)運算符

在C++中可以將算術(shù)運算符和賦值運算符結(jié)合在一起進行運算,因此C++還提供5種復合的賦值運算符+=,-=,*=,/=和%=。 例如:

x+=y 相當于 x=x+y x-=y 相當于 x=x-y x*=y 相當于 x=x*y x/=y 相當于 x=x/y x%=y 相當于 x=x%y例如:#include<iostream>usingnamespacestdvoidmain(){ intx=2,y=3;x*=y+8;cout<<x<<endl;}原因:x*=y+8等價于x=x*(y+8)//顯示222023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-44-2.4運算符和表達式算術(shù)運算符這些運算符的優(yōu)先級由高到低依次為:

1、+(正號),-(負號),++,--2、*,/,%3、+、-4、=、+=、-=、*=、/=、%=2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-45-2.4運算符和表達式注意

在進行算術(shù)運算時,很可能出現(xiàn)溢出,溢出是指在給一個變量賦值時超出了其數(shù)據(jù)類型表示的范圍。溢出不會引起編譯錯誤的,但運行結(jié)果會出現(xiàn)偏差。 例如:

shortinti=65536; cout<<i<<endl;輸出結(jié)果:02023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-46-習題voidmain(){ unsignedshortinti=-1;cout<<i<<endl;}運行結(jié)果:655352023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-47-2.4運算符和表達式關(guān)系運算符

關(guān)系運算符有==、!=、>=、>、<=、<六種;這些運算符的優(yōu)先級由高到低依次為:

1、>=、>、<=、<2、==、!=由關(guān)系運算符將兩個表達式連接起來,就是關(guān)系表達式;關(guān)系表達式的結(jié)果類型為bool,值只能為true或false,屏幕顯示為1或0。例如inta=1,b=2,c=3;cout<<a==b<<endl;cout<<a!=b<<endl;cout<<a>=b<<endl;cout<<a<b<<endl;d=a>b==c>a+5;cout<<d<<endl;結(jié)果true,輸出為1結(jié)果false,輸出為0結(jié)果true,輸出為1結(jié)果true,輸出為1結(jié)果false,輸出為02023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-49-2.4運算符和表達式邏輯運算符

邏輯運算符有&&、||、!三種;這些運算符的優(yōu)先級由高到低依次為

1、!2、&&3、||除了邏輯非,邏輯運算的級別低于關(guān)系運算。邏輯表達式的結(jié)果類型也為bool,值只能為true或false,屏幕顯示為1或0。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-50-2.4運算符和表達式注意

如果多個表達式用&&或||連接,為了提高判斷效率,只要能夠確定表達式的結(jié)果了,運行就不再繼續(xù)。例如:

inta=1,b=2;if(a>b&&b++)cout<<”b的值沒有被改變?!?lt;<endl;cout<<b<<endl;

運行結(jié)果:22023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-51-2.4運算符和表達式位運算符

一般高級語言:byteC語言:

bitC++語言中提供了六個位運算符,可以對整數(shù)進行位操作,分別是按位與(&),按位或(|),按位異或(^),按位取反(~),左移位(<<),右移位(>>)。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-52-2.4運算符和表達式按位與(&)

按位與操作的作用是將兩個操作數(shù)對應(yīng)的每一位分別進行邏輯與操作。例如:計算3&5 3:00000011

5:000001013&5:00000001例如:將chara;的最低位置0:

取inta;的低字節(jié):a=a&0376;charc=a&0377;2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-53-2.4運算符和表達式按位或(|)

按位或操作的作用是將兩個操作數(shù)對應(yīng)的每一位分別進行邏輯或操作。例如:計算3|5 3:00000011

5:000001013|5:00000111例如:將inta;的低字節(jié)置1:a=a|0xff;2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-54-2.4運算符和表達式按位異或(^)

按位異或操作的作用是將兩個操作數(shù)對應(yīng)的每一位分別進行異或操作。具體運算規(guī)則:

1^1=0,0^0=0,1^0=0^1=1例如:計算3^5 3:00000011

5:000001013^5:000001102023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-55-2.4運算符和表達式按位異或(^)

例如:如果使8位二進制數(shù)01111010的后四位翻轉(zhuǎn)?可以將該二進制數(shù)與00001111進行異或操作:01111010

(^)00001111 011101012023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-56-2.4運算符和表達式按位取反(~)

按位取反是一個一元運算符,它的作用是將兩個操作數(shù)對應(yīng)的每一位分別進行取反操作。具體運算規(guī)則:~1=0,~0=1。例如:計算~5 5:00000101~5:111110102023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-57-2.4運算符和表達式左移<<:按照指定的位數(shù)將一個二進制數(shù)值向左移動。左移后,低位補0,移出的高位舍棄。右移>>:按照指定的位數(shù)將一個二進制數(shù)值向右移動,右移后,移出的低位舍棄。如果是無符號數(shù)則高位補0,如果是有符號數(shù)在VC++6.0環(huán)境下高位補符號位。例子chara=-8;a=a>>2;cout<<”a=”<<(int)a<<endl;例子chara=2;a=a<<1;cout<<”a=”<<(int)a<<endl;2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-60-2.4運算符和表達式位運算符

在C++中可以將位運算符和賦值運算符結(jié)合在一起進行運算,因此C++還提供另外5種運算符&=,|=,^=,<<=和>>=。例如:

x&=y相當于 x=x&y

x|=y 相當于 x=x|y

x^=y 相當于 x=x^yx<<=y相當于 x=x<<yx>>=y相當于 x=x>>y2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-61-2.4運算符和表達式位運算符這些位運算符的優(yōu)先級由高到低依次為:1、~2、<<,>>3、&4、^5、|6、&=,|=,^=,<<=和>>=2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-62-2.4運算符和表達式條件運算符

條件運算符語法格式為:

表達式1?(表達式2):(表達式3);運算的結(jié)果是:如果表達式1的值為真,則返回表達式2的值,否則返回表達式3的值。

例1:x=a<b?a:b;例2:

intx=0,y=1;cout<<(x>y?x:y)<<endl;2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-63-2.4運算符和表達式逗號運算符

逗號表達式的語法格式為:

表達式1,表達式2,……,表達式n;C++順序計算表達式1,表達式2,……,表達式n的值,并將最后一次計算的結(jié)果作為逗號表達式的結(jié)果。例如:

inta,b,c;a=1,b=2,c=a+b;

例子inta,b,c,d;d=(a=1,b=2,c=a+b,a+b+c);cout<<d<<endl;62023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-65-2.4運算符和表達式數(shù)據(jù)類型轉(zhuǎn)換

當表達式中出現(xiàn)多種數(shù)據(jù)類型的混合運算時,往往需要進行類型轉(zhuǎn)換。表達式中的類型轉(zhuǎn)換分成兩種:1、隱式類型轉(zhuǎn)換2、強制類型轉(zhuǎn)換。2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-66-2.4運算符和表達式1、隱式類型轉(zhuǎn)換

各種二元運算符在進行運算時都要求兩個操作數(shù)的數(shù)據(jù)類型一致。如果類型不一致,則系統(tǒng)自動對數(shù)據(jù)進行轉(zhuǎn)換(隱式類型轉(zhuǎn)換)。

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-67-1、隱式類型轉(zhuǎn)換轉(zhuǎn)換的基本原則:將精度較低、范圍較小的類型轉(zhuǎn)換成精度較高、范圍較大的類型。

doublefloat

long unsigned intchar,short高低2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-68-例子voidmain(){ chara=100; unsignedchari=99; cout<<i-a<<endl;}輸出結(jié)果:-12023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-69-1、隱式類型轉(zhuǎn)換1、邏輯運算:邏輯運算要求是bool型,系統(tǒng)自動將其他類型轉(zhuǎn)換成bool類型,轉(zhuǎn)換規(guī)則:0為false,非0為true。2、賦值運算:

“=”要求左右兩邊的數(shù)據(jù)類型相同,如果類型不一致,則自動將右邊的操作數(shù)類型向著左邊的操作數(shù)類型轉(zhuǎn)換。例如:

inti=3.15; cout<<i<<endl;2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-70-2.4運算符和表達式2、強制類型轉(zhuǎn)換

強制類型轉(zhuǎn)換通過是類型說明符和括號來實現(xiàn)的顯式轉(zhuǎn)換,其語法格式為:

(數(shù)據(jù)類型名)表達式或數(shù)據(jù)類型名(表達式)例如:

inti=97;cout<<(char)i<<endl;//輸出’a’floatf=3.75;cout<<(int)f<<endl;//輸出32.5I/O流控制2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-72-2.5I/O流控制

在iostream庫中包含有一個標準輸入流對象cin和一個標準輸出流對象cout,分別用來實現(xiàn)從鍵盤讀取數(shù)據(jù),以及將數(shù)據(jù)在屏幕輸出。1、cin2、cout3、I/O流的格式控制2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-73-2.5I/O流控制1、標準輸入流cin

cin負責從鍵盤讀取數(shù)據(jù),使用提取操作符“>>”就可以將鍵盤鍵入的數(shù)據(jù)讀入到變量中。語法格式為:

cin>>變量1>>變量2…>>變量n;例如:

inta,b; charch; cin>>a>>b>>ch;2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-74-2.5I/O流控制2、標準輸出流cout

cout負責將變量或常量中的數(shù)據(jù)輸出到屏幕,使用插入操作符“<<”就可以將變量或常量的數(shù)據(jù)顯示在屏幕上。例如:

cout<<”Helloworld!\n”;

cout能夠自動識別“<<”后面的數(shù)據(jù)類型并進行顯示,并且可以從左到右一次顯示多個變量。例子#include<iostream>usingnamespacestd;voidmain(){ inta,b; charch; cout<<”請按順序輸入2整數(shù)和1字符:\n”;cin>>a>>b>>ch; cout<<”a=”<<a<<”b=”<<b<<”ch=”<<ch<<endl;}2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-76-2.5I/O流控制3、IO流的格式控制

庫文件iomanip

常用控制符:

setfill(c)

設(shè)置填充字符

setw(n)

設(shè)置域?qū)挒閚

2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-77-2.5I/O流控制設(shè)置輸出寬度和填充字符setw(n)

設(shè)置域?qū)?,即設(shè)置“<<”符號后面的數(shù)據(jù)占用的屏幕寬度。

setfill(c)

設(shè)置填充字符,即“<<”符號后面的數(shù)據(jù)長度小于域?qū)挄r,使用什么字符進行填充。

setw(n)和setfill(c)例1:

cout<<setw(8)<<’a’<<setw(8)<<’b’<<endl;輸出結(jié)果:

例2:

cout<<setfill(‘*’)<<setw(5)<<’a’<<endl;輸出結(jié)果:_______a_______b****a#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){cout<<setfill('*') <<setw(2)<<'\n' <<setw(3)<<'\n' <<setw(4)<<'\n' <<setw(5)<<'\n' <<setw(6)<<'\n' <<setw(7)<<'\n' <<setw(8)<<'\n';}

****************************2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-80-2.5I/O流控制注意1

除了setw()控制符外,其他控制符一旦設(shè)置,則對其后的所有輸入輸出產(chǎn)生影響。而setw()控制符只對其后輸出的第一個數(shù)據(jù)有效,對其他數(shù)據(jù)沒有影響,所以如下代碼:

cout<<setw(8)<<’a’<<’b’<<endl;輸出結(jié)果:_______ab2023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-81-2.5I/O流控制注意2

setw()的默認為setw(0),意思是按實際輸出。如果輸出的數(shù)值占用的寬度超過setw(n)設(shè)置的寬度,則按實際寬度輸出。例如:

floatf=0.12345;cout<<setw(3)<<f<<endl;0.123452023/2/1北京郵電大學電信工程學院計算機技術(shù)中心-82-2.5I/O流控制3、I/O流的格式控制

C++默認輸出浮點數(shù)的有效位為6位,那么要想控制輸出的數(shù)據(jù)的長度,該如何呢?比如:floatf=3.1234567;如何讓顯示結(jié)果為3.12?

C++提供了setprecision(intn)可以控制顯示浮點數(shù)的有效位。#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){ floatf=17/7.0; cout<<f<<endl; cout<<setprecision(0)<<f<<endl; cout<<setp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論