c語(yǔ)言peek函數(shù) c語(yǔ)言beep函數(shù)含義

C++語(yǔ)言中,cin.get()與cin.peek()是什么功能?。??

cin.get()

成都創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為汾陽(yáng)企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì),汾陽(yáng)網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

用法1: cin.get(字符變量名)可以用來(lái)接收字符

#include iostream

using namespace std;

main ()

{

char ch;

ch=cin.get(); //或者cin.get(ch);

coutchendl;

}

輸入:jljkljkl

輸出:j

用法2:cin.get(字符數(shù)組名,接收字符數(shù)目)用來(lái)接收一行字符串,可以接收空格

#include iostream

using namespace std;

main ()

{

char a[20];

cin.get(a,20);

coutaendl;

}

輸入:jkl jkl jkl

輸出:jkl jkl jkl

輸入:abcdeabcdeabcdeabcdeabcde (輸入25個(gè)字符)

輸出:abcdeabcdeabcdeabcd (接收19個(gè)字符+1個(gè)'\0')

用法3:cin.get(無(wú)參數(shù))沒(méi)有參數(shù)主要是用于舍棄輸入流中的不需要的字符,或者舍棄回車(chē),彌補(bǔ)cin.get(字符數(shù)組名,接收字符數(shù)目)的不足.

cin.peek() 其返回值是一個(gè)char型的字符,其返回值是指針指向的當(dāng)前字符,但它只是觀測(cè),指針仍停留在當(dāng)前位置,并不后移。如果要訪問(wèn)的字符是文件結(jié)束符,則函數(shù)值是EOF(-1)。

其功能是從輸入流中讀取一個(gè)字符 但該字符并未從輸入流中刪除

若把輸入流比作一個(gè) 棧類(lèi) 那么這里的peek函數(shù)就相當(dāng)于棧的成員函數(shù)front 而如果cin.get()則相當(dāng)于棧的成員函數(shù)pop。

下面這段代碼能幫助您更清晰地理解peek函數(shù)

/ istream peek

#include iostream

using namespace std;

int main () {

char c;

int n;

char str[256];

cout "Enter a number or a word: ";

c=cin.peek();

if ( (c = '0') (c = '9') )

{

cin n;

cout "You have entered number " n endl;

}

else

{

cin str;

cout " You have entered word " str endl;

}

return 0;

}

誰(shuí)給介紹一下c語(yǔ)言中的兩個(gè)函數(shù) ,pokeb 和peek

void pokeb(int segment,int offset,int value) 將字節(jié)value寫(xiě)到segment:offset處

int peek(int segment,unsigned offset) 函數(shù)返回segment:offset處的一個(gè)字

是對(duì)內(nèi)存和域的操作

C語(yǔ)言中有沒(méi)有類(lèi)似C++中 cin.peek()的函數(shù)?

C++中的peek函數(shù)

該調(diào)用形式為cin.peek() 其返回值是一個(gè)char型的字符,其返回值是指針指向的當(dāng)前字符,但它只是觀測(cè),指針仍停留在當(dāng)前位置,并不后移。如果要訪問(wèn)的字符是文件結(jié)束符,則函數(shù)值是EOF(-1)。

其功能是從輸入流中讀取一個(gè)字符 但該字符并未從輸入流中刪除若把輸入流比作一個(gè) 棧類(lèi) 那么這里的peek函數(shù)就相當(dāng)于棧的成員函數(shù)front 而如果cin.get()則相當(dāng)于棧的成員函數(shù)pop。

下面這段代碼能更清晰地理解peek函數(shù)

[cpp] view plaincopy

/* istream peek */

#include iostream

using namespace std;

int main ()

{

char c;

int n;

char str[256];

cout "Enter a number or a word: ";

c=cin.peek();

if ( (c = '0') (c = '9') )

{

cin n;

cout "You have entered number " n endl;

}

else

{

cin str;

cout " You have entered word " str endl;

}

return 0;

}

C中的peek函數(shù)(自己寫(xiě)的)

[cpp] view plaincopy

char peek_char;

static char peek()

{

return peek_char;

}

static void * __Peek_loop_func(void *pInputArg)

{

char tmp_char;

while(1)

{

if(tmp_char=getchar())

{

if((tmp_char!='\r')(tmp_char!='\n')(tmp_char!=0x0a))

{

peek_char=tmp_char;

printf("Input Char === [%c] \n",peek_char);

if(peek_char=='q')

{

printf("Jmp out from serial == 2 \n");

exit(1);

}

}

}

usleep(1000*10);

}

}

// 下面的代碼放在主程序中,用來(lái)創(chuàng)建檢測(cè)輸入的線程.

pthread_t tPeekThreadHandle;

pthread_create(tPeekThreadHandle, NULL, __Peek_loop_func, NULL);

原理就是創(chuàng)建一個(gè)新線程,來(lái)接收串口的輸入,如果輸入的第一字符為‘q’ 則退出程序,其實(shí)在退出的時(shí)候,我們也可以再捕獲一下。

請(qǐng)教peek()與eof()的用法

fin.peek() 每次讀一個(gè)元素進(jìn)來(lái)

讀回的不是EOF,則存在讀緩沖器里

rdbuf()-sgetc()

while( fin.peek()!=EOF ) {

如果temp.txt有4行,第4行有新行符號(hào)沒(méi)別的東西,

則循環(huán)4次,遇到 EOF 退出

第4次 讀緩沖器里的內(nèi)容是第三次讀入的

所以 多一個(gè) cc

eof 是文件結(jié)束符號(hào), 編碼是 ffff

temp.txt

aa

bb

ccEOF

--------------

aa

bb

cc

EOF

----------

前者3行,后者4行

改為:

while( fin.peek()!=EOF ) {

ch[0] = '\0';

fin ch;

cout ch;

}

就好了。

新聞標(biāo)題:c語(yǔ)言peek函數(shù) c語(yǔ)言beep函數(shù)含義
文章轉(zhuǎn)載:http://www.bm7419.com/article20/ddoodco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站收錄、云服務(wù)器外貿(mào)建站、小程序開(kāi)發(fā)品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名