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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? screen.cpp

?? 自己寫的C++primer的源碼,推薦下載
?? CPP
字號:
#include <iostream>
using std::cerr;
using std::cout;
using std::endl;

#include "screen.h"

// --------------------------
// Screen static data members
// --------------------------

Screen::Action Screen::Menu[] = {
        &Screen::home,
        &Screen::forward,
        &Screen::back,
        &Screen::up,
        &Screen::down,
        &Screen::end
};

// -----------------------
// Screen member functions
// -----------------------

Screen::Screen( const Screen &sobj )
{
        // if this Screen object and sobj are the same object,
        // no copy necessary
        if ( this != &sobj )
        {
                _height = sobj._height;
                _width = sobj._width;
                _cursor = 0;

                // creates a new string;
                // its content is the same as sobj._screen
                _screen = sobj._screen;
        }
}

Screen& Screen::move( int r, int c )
{ // move _cursor to absolute position
        if ( checkRange( r, c ) ) // valid screen position?
        {
                int row = (r-1) * _width; // row location
                _cursor = row + c - 1;
        }

	return *this;
}

Screen& Screen::move( CursorMovements cm )
{
        ( this->*Menu[ cm ] )();
        return *this;
}

Screen& Screen::clear( char bkground )
{ // reset the cursor and clear the screen

        _cursor = 0;
        _screen.assign(       // assign the string
                _screen.size(),    // with size() characters
                bkground           // of value bkground
        );

        // return the object for which the function was invoked
        return *this;
}

char Screen::get( int r, int c )
{
        move( r, c ); // position _cursor
        return get(); // the other get() member function
}

Screen& Screen::set( char ch ) 
{
        if ( ch == '\0' )
                cerr << "Screen: warning: "
                     << "null character (ignored).\n";
        else _screen[_cursor] = ch;

        return *this;
}

Screen& Screen::set( const string &s )
{ // write string beginning at current _cursor position

        int space = remainingSpace();
        int len = s.size();
        if ( space < len ) {
                cerr << "Screen: warning: truncation: "
                     << "space: " << space
                     << "string length: " << len << endl;
                len = space;
        }

        _screen.replace( _cursor, len, s );
        _cursor += len - 1;

        return *this;
}

Screen& Screen::forward()
{ // advance _cursor one screen element

        ++_cursor;

        // check for end of screen; wrap around
        if ( _cursor == _screen.size() )
                home();

        return *this;
}

Screen& Screen::back()
{ // move _cursor backward one screen element

        // check for top of screen; wrap around
        if ( _cursor == 0 )
                end();
        else
                --_cursor;

        return *this;
}

const char BELL = '\007';

Screen& Screen::up()
{ // move _cursor up one row of screen
  // do not wrap around; rather, ring bell

        if ( row() == 1 ) // at top?
                cout << BELL << endl;
        else
                _cursor -= _width;

        return *this;
}

Screen& Screen::down()
{
        if ( row() == _height ) // at bottom?
                cout << BELL << endl;
        else
                _cursor += _width;

        return *this;
}

Screen& Screen::repeat( Screen::Action op, int times )
{
        for ( int i = 0; i < times; ++i )
                (this->*op)();
        return *this;
}

Screen& Screen::reSize( int h, int w, char bkground )
{ // resize a screen to height h and width w

        // remember the content of the screen
        string local(_screen);

        // replaces the string to which _screen refers
        _screen.assign(     // assign the string
                h * w,           // with h * w characters
                bkground         // of value bkground
        );

        typedef string::size_type idx_type;
        idx_type local_pos = 0;

        // copy content of old screen into the new one
        for ( idx_type ix = 0; ix < _height; ++ix )
        { // for each row

                idx_type offset = w * ix; // row position
                for ( idx_type iy = 0; iy < _width; ++iy )
                        // for each column, assign the old value
                        _screen[ offset + iy ] = local[ local_pos++ ];
        }

        _height = h;
        _width = w;
        // _cursor remains unchanged

        return *this;
}

Screen& Screen::display()
{
        typedef string::size_type idx_type;

        for ( idx_type ix = 0; ix < _height; ++ix )
        { // for each row

                idx_type offset = _width * ix; // row position

                for ( idx_type iy = 0; iy < _width; ++iy )
                        // for each column, write element
                        cout << _screen[ offset + iy ];

                cout << endl;
        }
        return *this;
}

bool Screen::checkRange( int row, int col )
{ // validate coordinates
        if ( row < 1 || row > _height ||
             col < 1 || col > _width ) {
                cerr << "Screen coordinates ( "
                     << row << ", " << col
                     << " ) out of bounds.\n";
                return false;
        }
        return true;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费福利片| 色婷婷亚洲精品| 亚洲欧美韩国综合色| 日韩视频在线永久播放| 不卡一二三区首页| 青青草原综合久久大伊人精品优势 | 91麻豆精品国产91久久久更新时间| 国产在线一区观看| 亚洲午夜一区二区| 中文字幕人成不卡一区| 亚洲精品在线免费观看视频| 在线观看91视频| 国产成人av电影在线观看| 日韩av午夜在线观看| 亚洲欧洲精品成人久久奇米网| 欧美tickling挠脚心丨vk| 在线观看一区日韩| 9i看片成人免费高清| 国产制服丝袜一区| 日本成人在线看| 亚洲一区在线观看免费观看电影高清 | 久久综合九色综合久久久精品综合| 在线视频欧美区| 99re热这里只有精品视频| 国产精品1024| 狠狠狠色丁香婷婷综合激情| 日韩精品久久理论片| 亚洲午夜久久久| 综合久久久久久| 中文字幕二三区不卡| 久久综合九色欧美综合狠狠| 欧美一区二区成人| 欧美日本一区二区三区| 欧美中文字幕不卡| 一本久道久久综合中文字幕| 成人av电影在线| 99精品久久免费看蜜臀剧情介绍| 成人少妇影院yyyy| 成人免费视频网站在线观看| 国产成人h网站| 成人免费的视频| 懂色av一区二区三区免费看| 高清成人在线观看| 粉嫩av一区二区三区| 粉嫩一区二区三区性色av| 成人黄色在线网站| 成人97人人超碰人人99| 91免费版pro下载短视频| 色综合色狠狠天天综合色| 在线免费观看不卡av| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲免费观看高清在线观看| 亚洲日本成人在线观看| 一区二区三区四区不卡在线 | 国产精品久久久99| 国产精品久久久久aaaa樱花| 一区二区在线观看视频| 亚洲午夜一区二区| 另类成人小视频在线| 国产中文字幕一区| 不卡电影一区二区三区| 91福利国产成人精品照片| 欧美日韩一卡二卡三卡| 欧美不卡在线视频| 国产欧美精品一区二区色综合朱莉| 国产精品进线69影院| 亚洲综合网站在线观看| 日韩精品乱码av一区二区| 国产一区二区三区免费观看| 成人免费观看视频| 欧美无人高清视频在线观看| 日韩你懂的电影在线观看| 国产欧美在线观看一区| 亚洲综合一二三区| 久久国产人妖系列| 99re66热这里只有精品3直播 | 欧美成人激情免费网| 国产精品免费久久| 亚洲一二三四在线观看| 久久精品二区亚洲w码| 国产成人精品免费| 欧美日韩国产大片| 国产日产欧美一区二区视频| 亚洲一区二区在线免费观看视频| 日本免费新一区视频| 成人av在线影院| 9191久久久久久久久久久| 国产午夜精品在线观看| 亚洲国产欧美在线人成| 国产一区二区三区香蕉| 在线一区二区三区做爰视频网站| 欧美成人精品福利| 一区二区三区在线观看国产| 激情六月婷婷久久| 日本电影欧美片| 国产偷国产偷亚洲高清人白洁 | 懂色一区二区三区免费观看| 欧美日韩卡一卡二| 国产精品视频在线看| 秋霞电影网一区二区| av资源网一区| 久久综合九色综合97婷婷女人| 亚洲午夜精品久久久久久久久| 国产成人综合在线观看| 欧美一级二级三级蜜桃| 亚洲欧美日韩人成在线播放| 激情文学综合丁香| 欧美久久一区二区| 亚洲欧美另类综合偷拍| 国产乱子伦视频一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 1000部国产精品成人观看| 国产精品综合二区| 欧美一级片在线观看| 亚洲国产成人高清精品| 91热门视频在线观看| 久久久久久99久久久精品网站| 日本一区中文字幕| 欧美色中文字幕| 洋洋成人永久网站入口| 99热精品一区二区| 国产亚洲精品超碰| 国产乱码精品一区二区三区忘忧草| 日韩一区二区在线观看视频| 五月天久久比比资源色| 一本久道中文字幕精品亚洲嫩| 中文字幕日韩一区二区| 成人免费视频一区| 中文字幕不卡在线播放| 国产大片一区二区| 国产精品天天摸av网| 成人一级黄色片| 日本一区二区三区dvd视频在线| 激情文学综合网| 久久久久国产成人精品亚洲午夜| 蜜臀99久久精品久久久久久软件| 在线播放亚洲一区| 五月激情综合色| 在线电影一区二区三区| 日韩在线a电影| 91精品国产色综合久久久蜜香臀| 污片在线观看一区二区| 在线电影一区二区三区| 蜜桃视频一区二区| 精品乱人伦小说| 国内精品写真在线观看| 国产日产欧产精品推荐色| 国产黑丝在线一区二区三区| 中文字幕乱码亚洲精品一区| 高清beeg欧美| 亚洲色图一区二区| 在线免费观看成人短视频| 日本女优在线视频一区二区| 精品福利二区三区| 福利电影一区二区| 亚洲欧美日韩小说| 91精品久久久久久久99蜜桃 | 亚洲精品国产无天堂网2021 | 精品久久久网站| 国产美女一区二区三区| 国产精品久99| 精品视频资源站| 久久成人综合网| 中文一区二区在线观看| 色哟哟在线观看一区二区三区| 亚洲成a人片综合在线| 日韩欧美在线一区二区三区| 国产99久久久精品| 亚洲一区二区在线视频| 精品国精品国产| a级高清视频欧美日韩| 日韩不卡手机在线v区| 久久一区二区视频| 91麻豆蜜桃一区二区三区| 日韩av不卡在线观看| 国产日韩欧美一区二区三区乱码| 91免费精品国自产拍在线不卡| 午夜视频在线观看一区| 国产视频一区二区在线| 欧美日韩一区三区四区| 国产高清在线精品| 亚洲人成亚洲人成在线观看图片 | 777久久久精品| 国产夫妻精品视频| 亚洲成人精品一区二区| 久久久综合激的五月天| 色成年激情久久综合| 精品一二三四区| 亚洲久草在线视频| 精品少妇一区二区三区在线播放 | 国产一区二区美女诱惑| 一区二区三区不卡视频| 久久综合色天天久久综合图片| 欧美午夜一区二区三区 | 国产一区二区三区四区五区美女| 亚洲精品福利视频网站| 国产欧美视频一区二区| 欧美一卡二卡三卡四卡| 色一情一乱一乱一91av| 国产成人精品网址|