真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用c語(yǔ)言實(shí)現(xiàn)成員函數(shù) 用c語(yǔ)言實(shí)現(xiàn)成員函數(shù)求和

C++中怎樣聲明輸入流成員函數(shù)和輸出流成員函數(shù)

在程序中一般用cout和插入運(yùn)算符“”實(shí)現(xiàn)輸出,cout流在內(nèi)存中有相應(yīng)的緩沖區(qū)。有時(shí)用戶(hù)還有特殊的輸出要求,例如只輸出一個(gè)字符。ostream類(lèi)除了提供上面介紹過(guò)的用于格式控制的成員函數(shù)外,還提供了專(zhuān)用于輸出單個(gè)字符的成員函數(shù)put。如:

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),集美網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:集美等地區(qū)。集美做網(wǎng)站價(jià)格咨詢(xún):028-86922220

cout.put('a');

調(diào)用該函數(shù)的結(jié)果是在屏幕上顯示一個(gè)字符a。put函數(shù)的參數(shù)可以是字符或字符的ASCII代碼(也可以是一個(gè)整型表達(dá)式)。如

cout.put(65 + 32);

也顯示字符a,因?yàn)?7是字符a的ASCII代碼。

可以在一個(gè)語(yǔ)句中連續(xù)調(diào)用put函數(shù)。如:

cout.put(71).put(79).put(79). put(68).put('\n');

在屏幕上顯示GOOD。

[例13.4] 有一個(gè)字符串"BASIC",要求把它們按相反的順序輸出。

#include iostreamusing namespace std;int main( )

{ ? char *a="BASIC";//字符指針指向'B'

for(int i=4;i=0;i--)

cout.put(*(a+i)); ? ? ? ? ? ? ? ? ?//從最后一個(gè)字符開(kāi)始輸出

cout.put('\n'); ? return 0;

}

除了使用cout.put函數(shù)輸出一個(gè)字符外,還可以用putchar函數(shù)輸出一個(gè)字符。putchar函數(shù)是C語(yǔ)言中使用的,在stdio.h頭文件中定義。C++保留了這個(gè)函數(shù),在iostream頭文件中定義。

[例13.4] 也可以改用putchar函數(shù)實(shí)現(xiàn)。

#include iostream ?//也可以用#include stdio.h,同時(shí)不要下一行using namespace std;int main( )

{ ? char *a="BASIC"; ? for(int i=4;i=0;i--)

putchar(*(a+i));

putchar('\n');

}

成員函數(shù)put不僅可以用cout流對(duì)象來(lái)調(diào)用,而且也可以用ostream類(lèi)的其他流對(duì)象調(diào)用。

cin輸入流詳解

標(biāo)準(zhǔn)輸入流是從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))流向程序的數(shù)據(jù)。在頭文件iostream.h中定義了cin、cout、cerr、clog 4個(gè)流對(duì)象(詳情請(qǐng)查看:與C++輸入輸出有關(guān)的類(lèi)和對(duì)象),cin是輸入流,cout、cerr、clog是輸出流。

cin是istream類(lèi)的對(duì)象,它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))獲取數(shù)據(jù),程序中的變量通過(guò)流提取符“”從流中提取數(shù)據(jù)。流提取符“”從流中提取數(shù)據(jù)時(shí)通常跳過(guò)輸入流中的空格、tab鍵、換行符等空白字符。

注意:只有在輸入完數(shù)據(jù)再按回車(chē)鍵后,該行數(shù)據(jù)才被送入鍵盤(pán)緩沖區(qū),形成輸入流,提取運(yùn)算符“”才能從中提取數(shù)據(jù)。需要注意保證從流中讀取數(shù)據(jù)能正常進(jìn)行。

例如:

int a,b;

cinab;

若從鍵盤(pán)上輸入

21 ?abc↙

變量a從輸入流中提取整數(shù)21,提取操作成功,此時(shí)cin流處于正常狀態(tài)。但在變量b準(zhǔn)備提取一個(gè)整數(shù)時(shí),遇到了字母a,顯然提取操作失敗了,此時(shí),cin流被置為出錯(cuò)狀態(tài)。只有在正常狀態(tài)時(shí),才能從輸入流中提取數(shù)據(jù)。

當(dāng)遇到無(wú)效字符或遇到文件結(jié)束符(不是換行符,是文件中的數(shù)據(jù)已讀完)時(shí),輸入流cin就處于出錯(cuò)狀態(tài),即無(wú)法正常提取數(shù)據(jù)。此時(shí)對(duì)cin流的所有提取操作將終止。在 IBM PC及其兼容機(jī)中,以Ctrl + Z表示文件結(jié)束符。在UNIX和Macintosh系統(tǒng)中,以 Ctrl + D表示文件結(jié)束符。當(dāng)輸入流cin處于出錯(cuò)狀態(tài)時(shí),如果測(cè)試cin的值,可以發(fā)現(xiàn)它的值為false(假),即cin為0值。如果輸入流在正常狀態(tài),cin的值為true(真),即cin為 一個(gè)非0值??梢酝ㄟ^(guò)測(cè)試cin的值,判斷流對(duì)象是否處于正常狀態(tài)和提取操作是否成功。如:

if(!cn) //流cin處于出銷(xiāo)狀態(tài),無(wú)法正常提取數(shù)據(jù)

cout"error";

[例13.5] 通過(guò)測(cè)試cin的真值,判斷流對(duì)象是否處于正常狀態(tài)。

#include iostreamusing namespace std;int main( )

{ ? float grade;

cout"enter grade:"; ? while(cingrade)//能從cin流讀取數(shù)據(jù) ? { ? ? ?if(grade=85) coutgrade"GOOD!"endl; ? ? ?if(grade60) coutgrade"fail!"endl;

cout"enter grade:";

}

cout"The end."endl; ? return 0;

}

流提取符“”不斷地從流中提取數(shù)據(jù)(每次提取一個(gè)浮點(diǎn)數(shù)),如果成功,就陚給 grade,此時(shí)cin為真,若不成功則cin為假。如果鍵入文件結(jié)束符,表示數(shù)據(jù)已完。

運(yùn)行情況如下:

enter grade: 67↙

enter grade: 89↙

89 GOOD!

enter grade: 56↙

56 fail!

enter grade: 100↙

100 GOOD!

enter grade: ^Z↙//鍵入文件結(jié)束符

The end.

在遇到文件結(jié)束符時(shí),程序結(jié)束。如果某次輸入的數(shù)據(jù)為

enter grade: 100/2↙

流提取符""提取100,賦給grade,進(jìn)行if語(yǔ)句的處理。然后再遇到"/",認(rèn)為是無(wú)效字符,cin返回0。循環(huán)結(jié)束,輸出"The end."。

在不同的C++系統(tǒng)下運(yùn)行此程序,在最后的處理上有些不同。以上是在GCC環(huán)境下運(yùn)行程序的結(jié)果,如果在VC++環(huán)境(筆者使用win7系統(tǒng))下運(yùn)行此程序,在鍵入Ctrl + Z 時(shí),需要敲擊兩次回車(chē),程序才輸出"The end."。

get()函數(shù)讀入一個(gè)字符

get()函數(shù)是cin輸入流對(duì)象的成員函數(shù),它有3種形式:無(wú)參數(shù)的,有一個(gè)參數(shù)的,有3個(gè)參數(shù)的。

1) 不帶參數(shù)的get函數(shù)

其調(diào)用形式為

cin.get()

用來(lái)從指定的輸入流中提取一個(gè)字符(包括空白字符),函數(shù)的返回值就是讀入的字符。 若遇到輸入流中的文件結(jié)束符,則函數(shù)值返回文件結(jié)束標(biāo)志EOF(End Of File),一般以-1代表EOF,用-1而不用0或正值,是考慮到不與字符的ASCII代碼混淆,但不同的C ++系統(tǒng)所用的EOF值有可能不同。

[例13.6] 用get函數(shù)讀入字符。

#include iostreamusing namespace std;int main( )

{ ? int c;

cout"enter a sentence:"endl; ? while((c=cin.get())!=EOF)

cout.put(c); ? return 0;

}

運(yùn)行情況如下:

enter a sentence:

I study C++ very hard.↙(輸入一行字符)

I study C++ very hard.????????????? (輸出該行字符)

^Z↙(程序結(jié)束)

C語(yǔ)言中的getchar函數(shù)與流成員函數(shù)cin.get( )的功能相同,C++保留了C的這種用法,可以用getchar(c)從鍵盤(pán)讀入一個(gè)字符賦給c。

2) 有一個(gè)參數(shù)的get函數(shù)

其調(diào)用形式為

cin.get(ch)

其作用是從輸入流中讀取一個(gè)字符,賦給字符變量ch。如果讀取成功則函數(shù)返回true(真),如失敗(遇文件結(jié)束符) 則函數(shù)返回false(假)。例13.6可以改寫(xiě)如下:

#include iostreamusing namespace std;int main( )

{ ? char c;

cout"enter a sentence:"endl; ? while(cin.get(c)) ?//讀取一個(gè)字符賦給字符變量c,如果讀取成功,cin.get(c)為真 ? {cout.put(c);}

cout"end"endl; ? return 0;

}

3) 有3個(gè)參數(shù)的get函數(shù)

其調(diào)用形式為

cin.get(字符數(shù)組, 字符個(gè)數(shù)n, 終止字符)

cin.get(字符指針, 字符個(gè)數(shù)n, 終止字符)

其作用是從輸入流中讀取n-1個(gè)字符,賦給指定的字符數(shù)組(或字符指針指向的數(shù)組),如果在讀取n-1個(gè)字符之前遇到指定的終止字符,則提前結(jié)束讀取。如果讀取成功則函數(shù)返回true(真),如失敗(遇文件結(jié)束符) 則函數(shù)返回false(假)。再將例13.6改寫(xiě)如下:

#include iostreamusing namespace std;int main( )

{ ? char ch[20];

cout"enter a sentence:"endl;

cin.get(ch,10,'\\n');//指定換行符為終止字符

coutchendl; ? return 0;

}

運(yùn)行情況如下:

enter a sentence:

I study C++ very hard.↙

I study

在輸入流中有22個(gè)字符,但由于在get函數(shù)中指定的n為10,讀取n -1個(gè)(即9個(gè))字符并賦給字符數(shù)組ch中前9個(gè)元素。有人可能要問(wèn):指定n-10,為什么只讀取9個(gè)字符呢?因?yàn)榇娣诺氖且粋€(gè)字符串,因此在9個(gè)字符之后要加入一個(gè)字符串結(jié)束標(biāo)志,實(shí)際上存放到數(shù)組中的是10個(gè)字符。請(qǐng)讀者思考:如果不加入字符串結(jié)束標(biāo)志,會(huì) 出現(xiàn)什么情況?結(jié)果是:在用“coutch”;輸出數(shù)組中的字符時(shí),不是輸出讀入的字符串,而是數(shù)組中的全部元素。大家可以親自測(cè)試一下ch[9](即數(shù)組中第10個(gè)元素)的值是什么。

如果輸入↙

abcde

即未讀完第9個(gè)字符就遇到終止字符、讀取操作終止,前5個(gè)字符已存放到數(shù)組ch[0]到ch[4]中,ch[5]中存放'\0'。

如果在get函數(shù)中指定的n為20,而輸入22個(gè)字符,則將輸入流中前19個(gè)字符賦給字符數(shù)組ch中前19個(gè)元素,再加入一個(gè)'\0'。

get函數(shù)中第3個(gè)參數(shù)可以省寫(xiě),此時(shí)默認(rèn)為'\n'。下面兩行等價(jià):

cin.get(ch,10,'\\n');

cin.get(ch,10);

終止字符也可以用其他字符。如

cin.get(ch,10,'x');

在遇到字符'x'時(shí)停止讀取操作。

c語(yǔ)言中怎樣用代碼添加數(shù)組成員數(shù)

C語(yǔ)言的數(shù)組有動(dòng)態(tài)數(shù)組和靜態(tài)數(shù)組兩種。

1 靜態(tài)數(shù)組。

對(duì)于靜態(tài)數(shù)組,無(wú)法新增加數(shù)組成員數(shù)量。

所以一定要最初始定義足夠大的數(shù)組,然后可以用一個(gè)整型變量維護(hù)數(shù)組中現(xiàn)有成員個(gè)數(shù),再動(dòng)態(tài)增加實(shí)際成員個(gè)數(shù)。

比如

int?a[1000];

int?n?=?0;

while(scanf("%d",a[n])?!=?EOF)?n?++;

這樣的代碼就可以實(shí)現(xiàn)增加數(shù)組成員數(shù)的類(lèi)似效果。n為實(shí)際成員個(gè)數(shù)。

2 動(dòng)態(tài)數(shù)組。

動(dòng)態(tài)數(shù)組是可以隨時(shí)改變數(shù)組成員個(gè)數(shù)的。不過(guò)為了確定當(dāng)前數(shù)組個(gè)數(shù),需要用兩個(gè)整型變量來(lái)保存最大成員數(shù),和已有成員數(shù),這樣就可以在不夠的時(shí)候進(jìn)行擴(kuò)大。

int?n?=?0,?size?=?100;?//n為當(dāng)前元素個(gè)數(shù),size為數(shù)組大小,初始為100.

int?*a?=?NULL;//數(shù)組指針。

a?=?(int?*)malloc(sizeof(int)?*?size);?//?初始分配100個(gè)元素。

while(scanf("%d",a[n])?!=?EOF)?

{

n++;

if(n?=?size)//空間不足。

{

size+=100;//增加100個(gè)元素空間。

a?=?(int?*)realloc(sizeof(int)*size,?a);//重新分配空間。

}

}

C語(yǔ)言成員函數(shù)

首先這個(gè)是C++的代碼,C是沒(méi)有類(lèi)的概念,也不會(huì)有成員函數(shù)的概念。

void在這里代表該成員函數(shù)沒(méi)有返回值。


網(wǎng)站題目:用c語(yǔ)言實(shí)現(xiàn)成員函數(shù) 用c語(yǔ)言實(shí)現(xiàn)成員函數(shù)求和
轉(zhuǎn)載源于:http://weahome.cn/article/dopdijc.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部