亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? descriptorlab.cpp

?? symbian開發(fā)得基礎(chǔ)用書
?? CPP
字號:
// Copyright: (c) 2006 Nokia Ltd.  All rights reserved.

#include <e32cons.h>
#include "descriptorlab.h"


//////////////////////////////////////////////////////////////////////////////
//
// Main function called by E32
//
//////////////////////////////////////////////////////////////////////////////
GLDEF_C TInt E32Main()
    {
	CTrapCleanup* cleanup=CTrapCleanup::New();

    // Catch any Leaves thrown 
    TRAPD(
        error, 
        CDescriptorLab* lab = CDescriptorLab::NewLC();
        lab->StartL();
        CleanupStack::PopAndDestroy();
        );

	_LIT(KMsgPanic,"Error in Descriptor Lab: ");
	__ASSERT_ALWAYS(!error, User::Panic(KMsgPanic, error));

    delete cleanup;
	return 0;
    }




// ---------------------------------------------------------
// CDescriptorLab::NewLC()
// Two-phase constructor
// ---------------------------------------------------------
//
CDescriptorLab* CDescriptorLab::NewLC()
    {
    CDescriptorLab* self = new (ELeave) CDescriptorLab;
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
    }

// ---------------------------------------------------------
// CDescriptorLab::~CDescriptorLab()
// Destructor
// ---------------------------------------------------------
//
CDescriptorLab::~CDescriptorLab()
    {
    delete iConsole;
    }


// ---------------------------------------------------------
// CDescriptorLab::CDescriptorLab()
// Default C++ constructor
// ---------------------------------------------------------
//
CDescriptorLab::CDescriptorLab()
    {
    }

// ---------------------------------------------------------
// CDescriptorLab::ConstructL()
// Second-phase constructor
// ---------------------------------------------------------
//
void CDescriptorLab::ConstructL()
    {
    _LIT(KLabTitle,"Descriptors Lab");
    iConsole = Console::NewL(KLabTitle, TSize(KConsFullScreen, KConsFullScreen));
    }

// ---------------------------------------------------------
// CDescriptorLab::StartL()
// ---------------------------------------------------------
//
void CDescriptorLab::StartL() 
    {
    UseBufferDes();
    UseHeapDesL();
    // Continue
	_LIT(KMsgPressAnyKey,"Press any key to end");
	iConsole->Printf(KMsgPressAnyKey);
	iConsole->Getch();
    
    }

// ---------------------------------------------------------
// CDescriptorLab::UseBufferDes()
// ---------------------------------------------------------
//
void CDescriptorLab::UseBufferDes()
    {
    // Edit 1: Uncomment the following line to declare a literal string 
    _LIT(KBufferTitle, "BUF DESCRIPTOR EG:\n");
    iConsole->Printf(KBufferTitle);

    const TInt KBufSize = 12;
    
    _LIT(KEnterString, "Enter upto %d chars. Finish with space:\n");
    iConsole->Printf(KEnterString, KBufSize);

    // Look at key input
    // Edit 2: Declare a TBuf named buf of max size KBufSize.  
    //          Initialise the length of the buffer to 0
    TBuf<KBufSize> buf(0);

    // Edit 3: Uncomment the following 2 lines of code to get a string 
    // of upto KBufSize characters from the user.  A character is then 
    // got from the user and the number of occurances of that character 
    // in the string buf printed to the screen.
    GetStringFromUser(buf);
    CharOccurance(buf);
    }


// ---------------------------------------------------------
// CDescriptorLab::UseHeapDesL()
// ---------------------------------------------------------
//
void CDescriptorLab::UseHeapDesL()
    {
    _LIT(KHeapTitle, "\nHEAP DESCRIPTOR EG:\n");
    iConsole->Printf(KHeapTitle);
    _LIT(KEnterString, "Enter as many chars as you wish.\nFinish with space:\n");
    iConsole->Printf(KEnterString);
    // Edit 9: Declare a HBufC* called buf that is initialised to the return 
    //          value of a call to HBufC* CDescriptorLab::StringFromUserL()
	HBufC* buf = StringFromUserL();
    // Edit 10: Call CDescriptorLab::CharOccurance() passing the dereferenced 
    //          value of buf
	CharOccurance(*buf);
    // Edit 11: delete the memory associated with buf
	delete buf;
    }

// ---------------------------------------------------------
// CDescriptorLab::GetStringFromUser(TDes& aBuf)
// ---------------------------------------------------------
//
void CDescriptorLab::GetStringFromUser(TDes& aBuf)
    {
    // Get a character from the user
    TText key = CharFromUser();

    // Edit 4: Declare a TInt maxLen that is initialised  
    // to the maximum length of the descriptor parameter.
    // Hint: use aBuf.MaxLength()
	TInt maxLen = aBuf.MaxLength();

    while (key != EKeySpace &&  aBuf.Length() < maxLen)
        {
        // Edit 5: Append the user entered character onto the end 
        // of the descriptor passed in as a parameter
        // Hint: Use aBuf.Append(key)
        aBuf.Append(key);

        _LIT(KCharEntered, "%c");
        iConsole->Printf(KCharEntered, key);
        key = CharFromUser();
        }
    }

// ---------------------------------------------------------
// CDescriptorLab::StringFromUserL()
// ---------------------------------------------------------
//
HBufC* CDescriptorLab::StringFromUserL()
    {
    const TInt KGranularity = 10;
    // Edit 12: Declare a HBufC* called heapBuf and construct 
    //          via HBufC::NewL(KGranularity) 
	HBufC* heapBuf = HBufC::NewL(KGranularity);

    // Edit 13: Declare a TPtr called ptr that is initialised to heapBuf->Des()
	TPtr ptr(heapBuf->Des());
    TText key = CharFromUser();
    while (key != EKeySpace)
        {
        if (ptr.Length() == ptr.MaxLength())
            {
            TInt newLen = ptr.MaxLength() + KGranularity;
            // Edit 14: Uncomment the line below to increase the maxlength of 
            //          heapBuf and retain the existing contents and length
            heapBuf = heapBuf->ReAllocL(newLen);

            // Edit 15: Reset ptr to point to the new location of heapBuf
            //          Hint: call ptr.Set(heapBuf->Des()) rather than
            //          ptr = heapBuf->Des() as the latter will cause a panic
			ptr.Set(heapBuf->Des());
            }
        ptr.Append(key);
        _LIT(KCharEntered, "%c");
        iConsole->Printf(KCharEntered, key);
        key = CharFromUser();
        }
    return heapBuf;
    }

// ---------------------------------------------------------
// CDescriptorLab::CharFromUser()
// ---------------------------------------------------------
//
TText CDescriptorLab::CharFromUser()
    {
    TKeyCode key = iConsole->Getch();
    TText ret = static_cast<TText>(key);
    return ret;
    }


// ---------------------------------------------------------
// CDescriptorLab::CharOccurance(TDesC& aSearchStr)
// ---------------------------------------------------------
//
void CDescriptorLab::CharOccurance(TDesC& aSearchStr)
    {
    _LIT(KEnterChar, "\nEnter search char:");
    iConsole->Printf(KEnterChar);

    TText key = CharFromUser();
    _LIT(KCharEntered, "%c");
    iConsole->Printf(KCharEntered, key);

    TInt numChars = 0;
    // Edit 6: Declare a TPtrC called subStr and initialise it to 
    //          the aSearchStr parameter
	TPtrC subStr = aSearchStr;

    // Edit 7: Uncomment the line of code below to find the position of the 
    //          first occurence of the char entered by the user in aSearchString
    TInt pos = subStr.Locate(key);
    while (KErrNotFound != pos)
        {
        numChars++;
        // Edit 8: Uncomment the line of code below to reset subStr to point to the 
        //          remainder of aSearchStr after the position of the last found char
        subStr.Set(subStr.Mid(pos + 1));
        pos = subStr.Locate(key);
        }
    _LIT(KNumChars, "\nNumber of '%c's in\n\"%S\" = %d\n");
    iConsole->Printf(KNumChars, key, &aSearchStr, numChars);
    }



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费一区二区三区香蕉| 国产精品一区二区不卡| 欧美色成人综合| 亚洲一卡二卡三卡四卡 | 激情五月婷婷综合| 精品成人一区二区三区四区| 久久精品久久精品| 久久精品一二三| 不卡欧美aaaaa| 亚洲综合成人在线视频| 欧美伦理影视网| 麻豆国产精品一区二区三区 | 最新日韩av在线| 94-欧美-setu| 亚洲成av人综合在线观看| 日韩一区二区在线看| 国产精品一区二区三区四区 | 天堂成人国产精品一区| 精品久久久久99| 成人深夜在线观看| 午夜久久久久久久久久一区二区| 欧美岛国在线观看| 99在线视频精品| 日韩av在线免费观看不卡| 欧美精品一区二区在线观看| 在线中文字幕一区二区| 日韩精品一二三区| 国产拍欧美日韩视频二区| 色婷婷激情久久| 日本欧美在线看| 中文字幕一区二区三区在线播放 | 在线精品视频一区二区三四| 免费三级欧美电影| 国产精品色婷婷久久58| 欧美日韩中文字幕精品| 国产夫妻精品视频| 亚洲国产精品一区二区尤物区| 久久色成人在线| 欧美午夜电影网| 丁香亚洲综合激情啪啪综合| 亚洲aaa精品| 中文字幕一区免费在线观看| 精品福利在线导航| 欧美亚洲一区二区在线| 懂色av一区二区三区免费看| 日韩精品一二三| 亚洲美腿欧美偷拍| 亚洲国产经典视频| 日韩精品一区二区三区三区免费| 色偷偷久久人人79超碰人人澡| 久久99国产精品免费网站| 亚洲一区视频在线| 亚洲婷婷综合色高清在线| 久久久久久久av麻豆果冻| 7777精品伊人久久久大香线蕉完整版 | 91久久一区二区| 国产不卡视频在线播放| 秋霞成人午夜伦在线观看| 亚洲精品视频免费看| 日本一二三不卡| 久久久国产午夜精品| 日韩欧美亚洲一区二区| 欧美绝品在线观看成人午夜影视| 91麻豆文化传媒在线观看| 国产999精品久久| 久久电影网电视剧免费观看| 视频一区中文字幕| 亚洲成人精品一区| 亚洲图片有声小说| 亚洲激情在线激情| 中文字幕一区二区三区乱码在线| 久久久久99精品国产片| 精品国产露脸精彩对白| 日韩精品一区二区三区swag| 日韩午夜精品视频| 91精品国产黑色紧身裤美女| 欧美日韩免费一区二区三区视频| 色综合激情久久| 在线一区二区三区四区| 在线免费观看日本欧美| 欧美亚一区二区| 在线观看国产91| 欧美日韩在线播| 欧美美女黄视频| 在线电影国产精品| 日韩欧美一区二区视频| 久久综合一区二区| 久久婷婷成人综合色| 国产三级精品三级| 国产精品精品国产色婷婷| 亚洲天天做日日做天天谢日日欢| 亚洲乱码国产乱码精品精可以看| 亚洲男人的天堂一区二区| 亚洲午夜视频在线观看| 日本午夜精品一区二区三区电影| 蜜乳av一区二区| 久久99精品久久久久久国产越南 | 国产一区二区网址| 国产成人精品亚洲午夜麻豆| 99久久免费精品| 91极品美女在线| 欧美丰满少妇xxxxx高潮对白| 欧美一卡二卡在线观看| 久久综合999| 色婷婷av一区二区三区软件| 播五月开心婷婷综合| 97精品视频在线观看自产线路二| 91在线观看成人| 欧美军同video69gay| 久久这里都是精品| 亚洲天堂免费看| 丝袜亚洲另类丝袜在线| 国产福利视频一区二区三区| 91视频精品在这里| 欧美一区二区网站| 国产精品色在线| 亚洲午夜久久久久久久久久久| 美腿丝袜亚洲色图| 99久久综合99久久综合网站| 3d成人动漫网站| 欧美激情一区不卡| 青娱乐精品视频| 国产精品白丝jk白祙喷水网站| 色偷偷成人一区二区三区91| 精品日韩一区二区| 一区二区三区加勒比av| 韩国中文字幕2020精品| 色天天综合久久久久综合片| 欧美成人三级在线| 亚洲免费看黄网站| 国产精品自拍一区| 欧美精选在线播放| 国产精品久久久久久久久果冻传媒| 日韩精品欧美精品| 91污片在线观看| www久久精品| 日韩精品电影一区亚洲| 91在线高清观看| 国产三级精品三级在线专区| 麻豆91精品91久久久的内涵| 国产专区综合网| 在线视频你懂得一区二区三区| 国产亚洲污的网站| 蜜桃视频一区二区| 欧美丝袜丝交足nylons图片| 欧美国产丝袜视频| 久久99精品久久久| 欧美日韩国产高清一区二区三区 | 中文字幕中文字幕在线一区| 狠狠色狠狠色综合系列| 69堂成人精品免费视频| 亚洲人成精品久久久久久| 国产在线精品一区二区夜色| 欧美一区二区啪啪| 日韩高清中文字幕一区| 欧美熟乱第一页| 中文字幕一区在线观看| 99精品热视频| 自拍偷拍国产亚洲| 99久久精品免费看国产免费软件| 国产午夜精品一区二区三区视频 | 精品污污网站免费看| 亚洲天堂成人网| 91一区在线观看| 亚洲情趣在线观看| 91免费观看视频在线| 亚洲另类色综合网站| 91久久久免费一区二区| 亚洲国产日韩a在线播放性色| 欧美视频精品在线观看| 午夜成人免费电影| 欧美一区二区三区视频在线观看| 日韩精品欧美成人高清一区二区| 欧美日韩精品欧美日韩精品| 天天色图综合网| 日韩免费视频线观看| 久久成人精品无人区| 欧美伦理视频网站| 日韩国产高清在线| 成人高清免费观看| 亚洲麻豆国产自偷在线| 99精品国产热久久91蜜凸| 亚洲免费三区一区二区| 色综合久久88色综合天天| 亚洲欧美日韩小说| 欧美高清性hdvideosex| 琪琪久久久久日韩精品| 欧美一级午夜免费电影| 国产老肥熟一区二区三区| 亚洲精品一区二区三区福利| 精品一区二区三区蜜桃| 91福利精品视频| 蜜臀久久99精品久久久久宅男| 99久久国产综合色|国产精品| 中文字幕一区三区| 欧美色图在线观看| 日韩福利视频导航| 久久久久久久性| 97超碰欧美中文字幕| 亚洲成人免费av|