導航:首頁 > 程序命令 > C命令模式

C命令模式

發布時間:2023-03-22 15:16:43

❶ 請問如何用C++使用備忘錄模式和命令模式實現undo redo

昨天正好實現了一個備忘錄模式的示例

#ifndef _MEMENTO_H
#define _MEMENTO_H
#include <iostream>
#include <string>
using namespace std;

typedef string State;

class Memento
{
public:
~Memento();
private:
friend class Originator;
Memento(State s){
this->state = s;
}
void SetState(State s){
this->state = s;
}
State GetState(){
return state;
}
State state;
};

class Originator
{
public:
Originator(State s){
this->state = s;
}
void ChangeState(State s){
this->state = s;
}
Memento* CreateMemento(){
cout<<typeid(*this).name()<<": Create Memento..........."<<endl;
return new Memento(this->state);
}
void RestoreMemento(Memento* mem){
cout<<typeid(*this).name()<<": Restore Memento..........."<<endl;
this->state = mem->GetState();
}
void ShowState(string str){
cout<<str+"\n\tstate: "+state<<endl;
}
private:
State state;
};

class CareTaker
{
private:
Memento* mem;
public:
CareTaker():mem(NULL){}
void SaveMemento(Memento* m){
cout<<typeid(*this).name()<<": Save Memento..........."<<帆中endl;
mem = m;
}
Memento* GetMemento(){
return mem;
}
};

#endif //_MEMENTO_H

int main()
{
Originator *o = new Originator("start state.");
CareTaker *c = new CareTaker();

//show init state
o->ShowState("before change:");

//save state
c->SaveMemento(o->橡枝CreateMemento());

//change state
o->ChangeState("changed state.");
o->ShowState("after changed:");

//restore state
o->RestoreMemento(c->GetMemento());
o->ShowState("restored state:");
system("pause");
}

環境是vs2010,復製成兩個文件,編譯態如山就能運行。解釋的話,就不用了吧。。。

❷ 用C語言寫一下這個程序試下

假定你的c程序名字叫test.c 第一步:編輯,用linux最廣泛使用的vi編輯器為例,shell下段槐友運行vi test.c進入vi編輯器環境,默認為命令模式,按i或I 或A進入插入模式,這樣你可明梁以輸入c源程序。輸入完畢,檢查後按Esc鍵返回命令模式,再握槐按 shift +

❸ 怎麼在linux命令模式下創建以.C為結尾的文件或者將文件轉換成.C結尾

1、創建.c的文件一般鎮昌用命令:vi
*.c,
這樣就可以御拆扒直接在vi下寫自己的程序了
2、轉換用兩種方法:
方法1:如果你不想保留原來的文件了就用:mv
sourceFile
destinationFile
,這里的sourceFile指的是你想轉換的文件,destinationFile指的是你要換成的名字,你想.c結尾就記得在文件名的後面加上.c就可以了;
方法御薯2:如果你想保留原來的文件了就用:cp
sourceFile
destinationFile
,(具體跟上面的命令差不多)。

❹ 微軟C/C++編譯器(調試器)怎麼在命令行模式下調試程序

你說的GL命令加入調試信息。我也不太了解。
WINDOWS環境開發C/C++,應該有個IDE比較方便,效率高點。。。
如果JAVA不用IDE,還能提高些水平,多了解些東西。
但是我覺得C/C++實在沒必要再沒有集成開發環境的情況下做開發吧,

用VS2008最合適。
懷舊的用VC6,
激進的用VC2010,2012(win8)

開源的IDE也是有的,ECLIPSE。。。就支持很多語言的開發

補充:
你不想用IDE,你就首先聲明咯,我也不知道你不想用IDE。
別人給你回答就尊重點,你自己問題沒講清楚,別擦擦擦的。
不過C++的命令行調試我確實不懂,用這東西實在劃不來。
抱歉,幫不到你。

❺ linux vi如何進入命令模式

1、首先打開linux vi,進入到編輯頁面中,

❻ C語言的命令行寫在哪裡啊

用滑鼠點擊屏幕左下角的開始-》運行,在運行對話框中輸入「cmd」進入命睜亮令行模式,在命令行模式下進入你州早祥程序的當冊搏前目錄,然後在提示符後輸入:程序名 空格 需要計算行數的那個文件名。這樣你的程序在啟動時就以那個文件名作為main函數的參數了。

❼ vi編輯器有3種基本工作模式

3種基本工作模式分別是:命令模式、文本輸入模式和末行模式。下面詳細介紹這3種模式:
命令行模式:該模式是進入vi編輯器後的默認模式。任何時候,不管用戶處於何種模式,按下Esc鍵即可進入命令模式。在該模式下,用戶可以輸入 vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字元都被當作編輯命令來解釋。若輸入的字元是合法的vi命令,則vi在接受用戶命令之後完成相應的動作。但需注意的是,所輸入的命令並不回顯在屏幕上。若輸入的字元不是vi的合法命令,vi會響鈴報警。
文本輸入模式:在命令模式下輸入插入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字元都被vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中,若想末行模式:末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個「:」作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完後,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i。如果需要從文本模式返回,則按 Esc鍵即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。
末行模式:末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個「:」作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完後,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i。如果需要從文本模式返回,則按 Esc鍵即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。

❽ 在VC++中為什麼C程序運行後答案一閃而過來不及看清

先解釋一下為什麼一閃而過:
當你山敏在vc++里運行程序,vc++將會調用行命令模乎培式(即command.com程序),打開你的程序。當程序執行完畢後將自動退出行命令模式。歲唯唯所以你來不及看你的程序的輸出。
要解決這個問題,最簡單的方案就是在你的代碼的最後,return
0;之前,加上
getchar();
//getch()似乎不是ANSI
C的一部分
這個語句將使得你的程序做最後一件事情:從輸入緩沖區(輸入流stdin)中讀一個字元。也就是說在你的其他程序結束後,還要敲一下回車才會結束所有程序。
但是,要注意的是:當程序快結束時,如果你的輸入緩沖區中已經有字元了,c語言將直接從緩沖區中讀取一個字元,然後結束程序。而不等待你的輸入。
比如:
#include<stdio.h>
int
main(void)
{
putchar(getchar());
//你的程序只有這么一句,作用是輸入一個字元,然後計算機將它輸出
getchar();//這是你為了防止一閃而過而加的語句
return
0;
}
這個程序結束時將仍然一閃而過。原因在於第一條getchar()表達式執行的時候,將返回你輸入的第一個字元,後面的字元(包括回車字元'\n')留在了緩沖區。要解決這類問題,得隨機應變,沒有統一的解決方案。在這個例子中,可以這樣:
#include<stdio.h>
int
main(void)
{
putchar(getchar());
//你的程序只有這么一句,作用是輸入一個字元,然後計算機將它輸出
while(getchar()!='\n')
continue;//這個循環將把輸入緩沖區的內容清掉,一直清到換行符。
getchar();//這是你為了防止一閃而過而加的語句
return
0;
}
復雜一點的解決方案是,不要在visual
c++中執行。你先生成可執行文件,然後打開行命令模式(運行->cmd),然後在那裡運行你的程序,就不會自動退出了。
sorry,剛才試了一下,ctrl+f5確實可以,parason說的很對。
本想不發了,但是寫了半天,不發也可惜,況且,從我寫的這些,你可以更加理解一些原理性的東西。而且,我寫的是一個通用的辦法,即使不是visual
c++也可以用。
不過最佳答案千萬別選我,因為我的答案和parason的比起來確實很愚蠢。

閱讀全文

與C命令模式相關的資料

熱點內容
51單片機與32單片機比較 瀏覽:416
SQL加密存儲解密 瀏覽:505
電氣工程師把程序加密 瀏覽:795
解壓切東西動畫版 瀏覽:963
點到橢圓的距離演算法 瀏覽:388
新的編譯系統 瀏覽:531
cad替換樣板命令 瀏覽:361
des演算法例子 瀏覽:388
怎麼隱藏系統app 瀏覽:522
怎麼在惠生活查詢定向app 瀏覽:272
windows程序設計核心編程 瀏覽:444
任我充app怎麼開發票 瀏覽:330
人工智慧與編程語言 瀏覽:406
linux網路編程伺服器 瀏覽:800
海爾32cw空調壓縮機電容多大 瀏覽:747
分區加密了該怎麼辦 瀏覽:103
索尼延時拍攝app怎麼導入 瀏覽:226
冰箱冷凍壞了壓縮機一直響 瀏覽:807
windows伺服器如何組建raid0 瀏覽:180
橡膠壓縮空氣管 瀏覽:556