void pokeb(int segment,int offset,int value) 將字節(jié)value寫到segment:offset處
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作與策劃設(shè)計,尉犁網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:尉犁等地區(qū)。尉犁做網(wǎng)站價格咨詢:028-86922220
int peek(int segment,unsigned offset) 函數(shù)返回segment:offset處的一個字
是對內(nèi)存和域的操作
peek是c++
io流里面的方法,c++
io流是其獨有的,c里面并不能通用。
peek首先構(gòu)造一個sentry對象
其次調(diào)用與流關(guān)聯(lián)的streambuf對象的sgetc方法返回當前流指針位置處的字符,以int(ascii碼)方式返回,sgetc只返回流中當前字符,并不移動流指針的位置。接著銷毀sentry對象。
最后將istream的gcount方法的返回值設(shè)為0.(gcount將返回
該操作/方法從流中抽取的字符數(shù),設(shè)為0,是要告訴流,該方法/操作并沒有從流里面抽取任何字符)
C++中的peek函數(shù)
該調(diào)用形式為cin.peek() 其返回值是一個char型的字符,其返回值是指針指向的當前字符,但它只是觀測,指針仍停留在當前位置,并不后移。如果要訪問的字符是文件結(jié)束符,則函數(shù)值是EOF(-1)。
其功能是從輸入流中讀取一個字符 但該字符并未從輸入流中刪除若把輸入流比作一個 棧類 那么這里的peek函數(shù)就相當于棧的成員函數(shù)front 而如果cin.get()則相當于棧的成員函數(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ù)(自己寫的)
[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);
}
}
// 下面的代碼放在主程序中,用來創(chuàng)建檢測輸入的線程.
pthread_t tPeekThreadHandle;
pthread_create(tPeekThreadHandle, NULL, __Peek_loop_func, NULL);
原理就是創(chuàng)建一個新線程,來接收串口的輸入,如果輸入的第一字符為‘q’ 則退出程序,其實在退出的時候,我們也可以再捕獲一下。
fin.peek() 每次讀一個元素進來
讀回的不是EOF,則存在讀緩沖器里
rdbuf()-sgetc()
while( fin.peek()!=EOF ) {
如果temp.txt有4行,第4行有新行符號沒別的東西,
則循環(huán)4次,遇到 EOF 退出
第4次 讀緩沖器里的內(nèi)容是第三次讀入的
所以 多一個 cc
eof 是文件結(jié)束符號, 編碼是 ffff
temp.txt
aa
bb
ccEOF
--------------
與
aa
bb
cc
EOF
----------
前者3行,后者4行
改為:
while( fin.peek()!=EOF ) {
ch[0] = '\0';
fin ch;
cout ch;
}
就好了。
網(wǎng)頁名稱:C語言peek函數(shù) c++ peek函數(shù)
URL地址:http://aaarwkj.com/article48/dooodep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、搜索引擎優(yōu)化、企業(yè)建站、響應(yīng)式網(wǎng)站、外貿(mào)建站、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)