• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            C++讀寫文件

            掌握文本文件讀寫的方法
            了解二進(jìn)制文件的讀寫方法

            C++文件流:
            fstream  // 文件流
            ifstream  // 輸入文件流
            ofstream  // 輸出文件流

            //創(chuàng)建一個(gè)文本文件并寫入信息
            //同向屏幕上輸出信息一樣將信息輸出至文件
            #include<iomanip.h>
            #include<fstream.h>
            void main()
            {
              ofstream f1("d:\\me.txt");           //打開文件用于寫,若文件不存在就創(chuàng)建它
              if(!f1)return;                 //打開文件失敗則結(jié)束運(yùn)行
              f1<<setw(20)<<"姓名:"<<"廉東方"<<endl;     //使用插入運(yùn)算符寫文件內(nèi)容
              f1<<setw(20)<<"家庭地址:"<<"河南鄭州"<<endl;
              f1.close();                   //關(guān)閉文件
            }
            運(yùn)行后打開文件d:\me.txt,其內(nèi)容如下:
                   姓名:廉東方
                 家庭地址:河南鄭州

            文件操作:
            打開文件
              文件名
                注意路徑名中的斜杠要雙寫,如:
                "D:\\MyFiles\\ReadMe.txt"
              文件打開方式選項(xiàng):
                ios::in    = 0x01, //供讀,文件不存在則創(chuàng)建(ifstream默認(rèn)的打開方式)
                ios::out    = 0x02, //供寫,文件不存在則創(chuàng)建,若文件已存在則清空原內(nèi)容(ofstream默認(rèn)的打開方式)
                ios::ate    = 0x04, //文件打開時(shí),指針在文件最后。可改變指針的位置,常和in、out聯(lián)合使用
                ios::app    = 0x08, //供寫,文件不存在則創(chuàng)建,若文件已存在則在原文件內(nèi)容后寫入新的內(nèi)容,指針位置總在最后
                ios::trunc   = 0x10, //在讀寫前先將文件長(zhǎng)度截?cái)酁?(默認(rèn))
                ios::nocreate = 0x20, //文件不存在時(shí)產(chǎn)生錯(cuò)誤,常和in或app聯(lián)合使用
                ios::noreplace = 0x40, //文件存在時(shí)產(chǎn)生錯(cuò)誤,常和out聯(lián)合使用
                ios::binary  = 0x80  //二進(jìn)制格式文件
              文件保護(hù)方式選擇項(xiàng):
                filebuf::openprot;   //默認(rèn)的兼容共享方式
                filebuf::sh_none;    //獨(dú)占,不共享
                filebuf::sh_read;    //讀共享
                filebuf::sh_write;   //寫共享
              打開文件的方法
                調(diào)用構(gòu)造函數(shù)時(shí)指定文件名和打開模式
                ifstream f("d:\\12.txt",ios::nocreate);         //默認(rèn)以 ios::in 的方式打開文件,文件不存在時(shí)操作失敗
                ofstream f("d:\\12.txt");                //默認(rèn)以 ios::out的方式打開文件
                fstream f("d:\\12.dat",ios::in|ios::out|ios::binary); //以讀寫方式打開二進(jìn)制文件
                使用Open成員函數(shù)
                fstream f;
                f.open("d:\\12.txt",ios::out);             //利用同一對(duì)象對(duì)多個(gè)文件進(jìn)行操作時(shí)要用到open函數(shù)
            檢查是否成功打開
              成功:
                if(f){...}       //對(duì)ifstream、ofstream對(duì)象可用,fstream對(duì)象不可用。
                if(f.good()){...}
              失敗:
                if(!f){...}       // !運(yùn)算符已經(jīng)重載
                if(f.fail()){...}
            讀寫操作
              使用<<,>>運(yùn)算符
              只能進(jìn)行文本文件的讀寫操作,用于二進(jìn)制文件可能會(huì)產(chǎn)生錯(cuò)誤。
              使用函數(shù)成員 get、put、read、write等
              經(jīng)常和read配合使用的函數(shù)是gcount(),用來獲得實(shí)際讀取的字節(jié)數(shù)。
            讀寫二進(jìn)制文件注意事項(xiàng)
              打開方式中必須指定ios::binary,否則讀寫會(huì)出錯(cuò)
              用read\write進(jìn)行讀寫操作,而不能使用插入、提取運(yùn)算符進(jìn)行操作,否則會(huì)出錯(cuò)。
              使用eof()函數(shù)檢測(cè)文件是否讀結(jié)束,使用gcount()獲得實(shí)際讀取的字節(jié)數(shù)
            關(guān)閉文件
              使用成員函數(shù)close,如:
              f.close(); 
              利用析構(gòu)函數(shù)
              對(duì)象生命期結(jié)束時(shí)會(huì)檢查文件是否關(guān)閉,對(duì)沒有關(guān)閉的文件進(jìn)行關(guān)閉操作。
            隨機(jī)讀寫文件
              通過移動(dòng)文件讀寫指針,可在文件指定位置進(jìn)行讀寫。
              seekg(絕對(duì)位置);      //絕對(duì)移動(dòng),    //輸入流操作
              seekg(相對(duì)位置,參照位置);  //相對(duì)操作
              tellg();          //返回當(dāng)前指針位置
              seekp(絕對(duì)位置);      //絕對(duì)移動(dòng),    //輸出流操作
              seekp(相對(duì)位置,參照位置);  //相對(duì)操作   
              tellp();          //返回當(dāng)前指針位置
              參照位置:
              ios::beg  = 0       //相對(duì)于文件頭
              ios::cur  = 1       //相對(duì)于當(dāng)前位置
              ios::end  = 2       //相對(duì)于文件尾
            讀寫文本文件的示例
            //為能夠正確讀出寫入文件的各數(shù)據(jù),各數(shù)據(jù)間最好要有分隔
            #include<fstream.h>
            void main()
            {
              fstream f("d:\\try.txt",ios::out);
              f<<1234<<' '<<3.14<<'A'<<"How are you"; //寫入數(shù)據(jù)
              f.close();
              f.open("d:\\try.txt",ios::in);
              int i;
              double d;
              char c;
              char s[20];
              f>>i>>d>>c;               //讀取數(shù)據(jù)
              f.getline(s,20);
              cout<<i<<endl;             //顯示各數(shù)據(jù)
              cout<<d<<endl;
              cout<<c<<endl;
              cout<<s<<endl;
              f.close();
            }
            運(yùn)行結(jié)果:
            1234
            3.14
            A
            How are you
            Press any key to continue
            顯示文本文件的內(nèi)容
            //使用get()一次讀一個(gè)字符--------------------------------方案一
            #include<fstream.h>
            void main()
            {
              ifstream fin("d:\\簡(jiǎn)介.txt",ios::nocreate);
              if(!fin){
                cout<<"File open error!\n";
                return;
              }
              char c;
              while((c=fin.get())!=EOF)cout<<c;    //注意結(jié)束條件的判斷
              fin.close();
            }
            //使用get(char *,int n,char delim='\n')一次讀多個(gè)字符----方案二
            //巧妙利用文本文件中不會(huì)有字符'\0'的特點(diǎn)進(jìn)行讀取
            #include<fstream.h>
            void main()
            {
              ifstream fin("d:\\簡(jiǎn)介.txt",ios::nocreate);
              if(!fin){
                cout<<"File open error!\n";
                return;
              }
              char c[80];
              while(fin.get(c,80,'\0')!=NULL)cout<<c; //注意結(jié)束條件的判斷
              fin.close();
            }
            //使用read(char *,int n)讀文件---------------------------方案三
            #include<fstream.h>
            void main()
            {
              ifstream fin("d:\\簡(jiǎn)介.txt",ios::nocreate);
              if(!fin){
                cout<<"File open error!\n";
                return;
              }
              char c[80];
              while(!fin.eof())            //判斷文件是否讀結(jié)束
              {
                fin.read(c,80);
                cout.write(c,fin.gcount());
              }
              fin.close();
            }
            拷貝文件
            //二進(jìn)制文件操作示例
            #include<fstream.h>
            void main()
            {
              ifstream fin("C:\\1.exe",ios::nocreate|ios::binary);
              if(!fin){
                cout<<"File open error!\n";
                return;
              }
              ofstream fout("C:\\2.exe",ios::binary);
              char c[1024];
              while(!fin.eof())
              {
                fin.read(c,1024);
                fout.write(c,fin.gcount());
              }
              fin.close();
              fout.close();
              cout<<"Copy over!\n";
            }

            posted @ 2013-03-29 14:21 多彩人生 閱讀(384) | 評(píng)論 (0)編輯 收藏

            postgresql 編碼

            psql 里輸入 \encoding 查看當(dāng)前編碼
                \encoding utf8   設(shè)置為utf8

            posted @ 2013-03-05 18:40 多彩人生 閱讀(433) | 評(píng)論 (0)編輯 收藏

            flex

            http://www.cnblogs.com/AS30/archive/2011/10/10/2205084.html  as3加載圖片的兩種方法

            posted @ 2012-11-17 14:16 多彩人生 閱讀(245) | 評(píng)論 (0)編輯 收藏

            luabind常用方法總結(jié)

            luabind比較復(fù)雜,功能包羅萬象,但使用起來比較簡(jiǎn)單,特別是最常用的方法只有幾個(gè),下面結(jié)合一個(gè)簡(jiǎn)單的例子總結(jié)一下。     在我們游戲應(yīng)用中,一般都是已c++為主導(dǎo)的,也就是說c++主動(dòng)調(diào)用lua腳本。
            先寫一個(gè)比較常見的lua腳本:
            1. nGlobal = 10 --一個(gè)全局的整形變量   
            2. strGlobal = "hello i am in lua" --一個(gè)全局的字符串變量   
            3. --一個(gè)返回值為int類型的函數(shù)   
            4. function add(a, b)   
            5.     return a+b   
            6. end   
            7. --一個(gè)返回值為string類型的函數(shù)   
            8. function strEcho(a)   
            9.     print(a) 10   
            10.     return 'haha i have print your input param'   
            11. end   
            12. cppapi.testFunc() --調(diào)用c++暴露的一個(gè)測(cè)試函數(shù)   
            13. t={name='ettan', age=23, desc='正值花季年齡'}  
             
            ////////////////////////////////////lua腳本結(jié)束
            下面寫c++函數(shù)中的調(diào)用了
            1. #include<iostream>  
            2. #include<string>  
            3. using namespace std;  
            4. #include<lua.hpp>  
            5. #include<luabind/function.hpp>  
            6. void testFunc()  
            7. {  
            8.     cout<<"helo there, i am a cpp fun"<<endl;  
            9. }  
            10. int main(int argc, char* argv[])  
            11. {  
            12.     //首先聲明luaState環(huán)境  
            13.     using namespace luabind;  
            14.     lua_State* L = lua_open();  //也可以用luaL_newState()函數(shù)  
            15.     luaL_openlibs(L);   //注意將lua默認(rèn)庫打開,要不會(huì)出現(xiàn)N多錯(cuò)誤的,比如print函數(shù)都沒有  
            16.     //將c++中的函數(shù)暴露給lua  
            17.     module(L, "cppapi")  
            18.     [  
            19.         def("testFunc", (void(*)(void))testFunc)  
            20.     ];  
            21.     //加載lua腳本,我們臨時(shí)起名test.lua  
            22.     luaL_dofile(L, "test.lua");  
            23.     try  
            24.     {  
            25.         //調(diào)用lua中的整形全局變量  
            26.         int nLuaGlobal =     luabind::object_cast<int>(luabind::globals(L)["nGlobal"]) ;  
            27.         //調(diào)用lua中的字符串變量  
            28.         string strLuaGlobal = luabind::object_cast<string>(luabind::globals(L)["strGlobal"]);  
            29.         //獲取table,方法一,通過luabind::object 固有方法  
            30. luabind::object luaTable = luabind::globals(L)["t"] ;  
            31. string name=luabind::object_cast<string>(luaTable["name"]) ;  
            32.         int age = luabind::object_cast<int>(luaTable["age"]) ;  
            33.         //獲取table,方法二,通過gettable  
            34.         string desc = luabind::object_cast<string>(luabind::gettable(luaTable,"desc"));  
            35.         //下面是調(diào)用lua中函數(shù)  
            36.         int nAddRes = luabind::call_function<int>(L, "add", 3, 4) ;  
            37.         string strEchoRes = luabind::call_function<string>(L, "strEcho", "c++參數(shù)") ;  
            38.     }  
            39.     catch(...)  
            40.     {  
            41.         cout<<"error"<<endl;  
            42.     }  
            43.     return 0;  
            44. }  
             
                我們目前常用的方法暫時(shí)就有這些,當(dāng)然在實(shí)際編碼中,c++暴露給lua的經(jīng)常是c++類中的函數(shù),只要稍加修改就行!

            posted @ 2012-10-18 23:45 多彩人生 閱讀(913) | 評(píng)論 (0)編輯 收藏

            iconv的安裝和使用

            一。Linux下iconv的安裝
            包的下載頁面http://www.gnu.org/software/libiconv/
            $ ./configure --prefix=/usr/local
            $ make
            $ make install

            安裝時(shí)注意gettext和libiconv的一方更新,另一方需要更新的問題。
            詳細(xì)參考安裝指南。

            二。windows下安裝iconv
            下載路徑:http://gnuwin32.sourceforge.net/packages/libiconv.htm
            我的使用主要是利用iconv進(jìn)行編程,故只使用了lib和頭文件
            1設(shè)置c/c++的 Additional Include Dictories,將頭文件路徑加入

            2設(shè)置Linker下的General和Input,添加lib名字和lib路徑。

            3將charset.dll和iconv.dll放入生成可執(zhí)行exe文件的目錄下面

            !!!注意:為了實(shí)現(xiàn)跨平臺(tái)需要將*nix版的iconv.h和windows版本的合并,方法:利用
            條件預(yù)編譯#indef 。

            posted @ 2012-10-17 17:57 多彩人生 閱讀(4681) | 評(píng)論 (0)編輯 收藏

            Linux WideCharToMultiByte WideCharToMultiByte

            http://blog.csdn.net/hbhhww/article/details/7459501

            Linux下面的沒有命名為  () 和 MultiByteToWideChar() 函數(shù),WideCharToMultiByte,MultiByteToWideChar是windows下的函數(shù),在linux下也有類似的兩個(gè)函數(shù):

            mbstowcs()
            wcstombs()

            值得注意的是:

            size_t mbstowcs(wchar_t *wcstr,const char *mbstr,size_t count);

            這個(gè)函數(shù)的第三個(gè)參數(shù)count,大小一定要是mbstr長(zhǎng)度的2倍,否則出來的中文也會(huì)是亂碼

             

            測(cè)試一下:

             

                setlocale(LC_ALL,"zh_CN.GB18030");
                wchar_t wcstr[20] = L"字符測(cè)試123abc";

                int len = wcslen(wcstr)+1;
                printf("len = %d /n",len);
                for(int i = 0; i < len; i++)
                    printf("0x%08x ",wcstr[i]);
                printf("/n");

                char str[55] = {0};   
                int n = wcstombs(str,wcstr,55);
                if(-1 == n)
                {
                perror("wcstombs ");
                exit(-1);
                }   
                printf("n = %d/n",n);
                for(int i = 0; i < n+1; i++)
                    printf("0x%08x ",str[i]);
                printf("/n");   
                wchar_t wch[50]={0};
                int m = mbstowcs(wch,str,n);    
                if(m == -1)
                {
                perror("Converting");
                exit(-1);
                }
                printf("m = %d/n",m);
                for(int i =0; i<m+1;i++)
                printf("0x%08x ",wch[i]);
                printf("/n");
                return 0;
            }

             

            還有呢,轉(zhuǎn)碼還可以使iconv函數(shù)族,包含以下三個(gè)函數(shù):
            iconv_t iconv_open(const char *tocode, const char *fromcode);

            size_t iconv(iconv_t cd,char **inbuf,size_t *inbytesleft,char **outbuf,size_t *outbytesleft);

            int iconv_close(iconv_t cd);

             

             

            測(cè)試一下:

            #include <stdio.h>
            #include <iconv.h>
            #include <string.h>

            #define BUFLEN 256

            char outbuf[BUFLEN];
            char inbuf[BUFLEN] = "characters convertion";

            int main()
            {    
                 char *pin = inbuf;
                 char *pout = outbuf;
                   
                 int inlen = strlen(pin);
                 int outlen = BUFLEN;

                 int retsize;

                 iconv_t cd;

                 cd = iconv_open("UTF-8", "GBK");

                 if((iconv_t)-1 == cd) {
                         perror("iconv_open error");
                         return -1;
                 }

                 retsize = iconv(cd, &pin, (size_t *)&inlen, &pout, (size_t *)&outlen);

                 if((size_t)-1 == retsize) {
                         perror("iconv error");
                         return -2;   
                 }

                 if(outlen > 0) {
                         printf("%s/n", outbuf);
                 }

                 iconv_close(cd);

                 return 0;
            }

             

            另外

             

            關(guān)于Linux下轉(zhuǎn)碼的資料,這里比較全:

             

            http://www.360doc.com/content/11/0119/14/1317564_87612492.shtml

            posted @ 2012-10-17 17:56 多彩人生 閱讀(1195) | 評(píng)論 (0)編輯 收藏

            linux下遞歸刪除目錄下所有exe文件

            今天給學(xué)校部署校慶網(wǎng)站,做網(wǎng)站的同學(xué)傳給我的網(wǎng)站文件夾里,有很多exe文件,而且這些exe的文件名都是原來的目錄名,看起來是他的機(jī)器中了病毒。雖然exe文件在linux下無法運(yùn)行,但是還是要?jiǎng)h除這些exe文件。

                在網(wǎng)上找了一下,《linux下遞歸刪除某個(gè)文件夾或文件》給了我滿意的方法,讓我可以一次性刪除某目錄及其子目錄下所有的exe文件。

            find . -name '*.exe' -type f -print -exec rm -rf {} \;

            (1) "."    表示從當(dāng)前目錄開始遞歸查找

            (2) “ -name '*.exe' "根據(jù)名稱來查找,要查找所有以.exe結(jié)尾的文件夾或者文件

            (3) " -type f "查找的類型為文件

            (4) "-print" 輸出查找的文件目錄名

            (5) 最主要的是是-exec了,-exec選項(xiàng)后邊跟著一個(gè)所要執(zhí)行的命令,表示將find出來的文件或目錄執(zhí)行該命令。

                 exec選項(xiàng)后面跟隨著所要執(zhí)行的命令或腳本,然后是一對(duì)兒{},一個(gè)空格和一個(gè)\,最后是一個(gè)分號(hào)

            posted @ 2012-09-29 11:03 多彩人生 閱讀(478) | 評(píng)論 (0)編輯 收藏

            centos下firefox的flash插件的安裝與卸載

            一定要注意系統(tǒng)的位數(shù),是32位的還是64位的,我這里介紹的是32為的,64位的自行下載對(duì)應(yīng)軟件安裝即可

             查看系統(tǒng)版本的命令:getconf LONG_BIT 返回32就是32位,返回64就是64位

            (一)用rpm來安裝

            首先下載rpm安裝包,選擇的是32bit的最新安裝包
            wget http://fpdownload.macromedia.com/get/flashplayer/pdc/11.1.102.55/flash-plugin-11.1.102.55-release.i386.rpm
            然后安裝
            rpm -i flash-plugin-11.1.102.55-release.i386.rpm
            如此使用rpm方式flash插件就安裝好了。如果想選擇其他版本可以訪問http://get.adobe.com/cn/flashplayer/

            說說這個(gè)rpm包怎么卸載,兩條命令
            rpm -e flash-plugin
            rpm -qa |grep ^flash-plugin

            如果第二條命令返回為空怎么表示卸載干凈了。

            第一條命令rpm -e flash-plugin是卸載命令,第二條rpm -qa |grep ^flash-plugin是驗(yàn)證是否卸載成功了。

            (二) 插件式

            其實(shí)第二種我也不知道該如何命名,暫時(shí)先這么叫吧,如有確切或者更好的,請(qǐng)不吝賜教。

            同樣要先下載安裝包
            wget http://fpdownload.macromedia.com/get/flashplayer/pdc/11.1.102.55/install_flash_player_11_linux.i386.tar.gz
            然后解壓
            tar zxvf install_flash_player_11_linux.i386.tar.gz
            然后進(jìn)入 cd install_flash_player_11_linux.i386
            然后將libflashplayer.so文件移動(dòng)到~/.mozilla/plugins/即可,其他文件不要。

            如果不知道~/.mozilla/plugins/路徑,可以使用
            find / -name plugins
            來查找,我得到的結(jié)果是

            /etc/skel/.mozilla/plugins
            /usr/lib/qt-3.3/plugins
            /usr/lib/mozilla/plugins
            /usr/lib/xulrunner-1.9.2/plugins
            /usr/lib/krb5/plugins

            所以就把libflashplayer.so移動(dòng)到/usr/lib/mozilla/plugins文件夾下就OK了。

            移動(dòng)命令使用mv。具體請(qǐng)百度 google。

            (三)瀏覽器選擇安裝法

            最近有網(wǎng)友反映插件雖然安裝了但是還是提示未安裝,主要原因是版本選的不對(duì)。

            為了能更好的解決這個(gè)問題,現(xiàn)加一個(gè)方法。

            用firefox打開youtube或者其他視頻網(wǎng)站,會(huì)提示你安裝flash,然后點(diǎn)安裝,會(huì)顯示找不到(找到了更好),然后點(diǎn)左下角的那個(gè)鏈接,然后在新打開的網(wǎng)頁里點(diǎn),安裝缺失插件,就跳到Adobe的網(wǎng)站了,在那里選擇相應(yīng)版本的插件下載安裝就好了。

            下載的時(shí)候選擇.rpm那個(gè)大小在6M多吧,安裝方法同(一)

            posted @ 2012-09-28 19:25 多彩人生 閱讀(1512) | 評(píng)論 (0)編輯 收藏

            讓CentOS 6/Fedora 15顯示詳細(xì)啟動(dòng)信息,不顯示進(jìn)度條

            一些CentOS等Linux系統(tǒng)啟動(dòng)后可能會(huì)出現(xiàn)讀進(jìn)度條等待進(jìn)入系統(tǒng)的過程,對(duì)于學(xué)習(xí)Linux啟動(dòng)過程非常不利,我們可以將它恢復(fù)到顯示詳細(xì)啟動(dòng)過程模式。

            使用root用戶修改 /boot/grub/grub.conf 文件。

            [root@Slyar ~]# vim /boot/grub/grub.conf

            找到下面的部分,將"rhgb"去掉,保存即可。其中"rhgb"表示"redhat graphics boot",就是圖形進(jìn)度條模式。而"quiet"表示在啟動(dòng)過程中只顯示重要啟動(dòng)信息,類似硬件自檢之類的消息不會(huì)顯示,可以有選擇地選用。

            kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=697cb0d9-19f6-414a-90a1-5ceb2f40b03d rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet

            posted @ 2012-09-28 09:36 多彩人生 閱讀(382) | 評(píng)論 (0)編輯 收藏

            用Vim搭建C/C++開發(fā)環(huán)境

             

            http://blog.csdn.net/wooin/article/details/1858917
            http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/

             

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

            用Vim搭建C/C++開發(fā)環(huán)境

            李若老師曾經(jīng)說:世界上的程序員分三種,一種是用Emacs,一種是用Vim的,其它的歸為第 三種。其意是說如果一個(gè)程序員兩者都不用的話,那大抵是不能歸為入流者行列的。對(duì)使用C/C++的人來說,很多人喜歡Emacs,據(jù)說與對(duì) Stallman的崇拜與愛屋及烏有關(guān);-) 當(dāng)然,Emacs與Vim雖然在文本編輯方面的性能是等價(jià)的,但使用起來兩者還是有很大的不同:Vim是為 程序員而開發(fā)的,功能強(qiáng)大而實(shí)用;Emacs除了文本編輯之外,作為Unix下的“第一個(gè)人工生命”,還可以通過插件完成各種包括聽mp3,發(fā)郵件,甚至 煮咖啡的操作,所以,Emacs更像是一種“生活方式”。言歸正傳,我個(gè)人是用Vim的,在編寫C/C++的程序時(shí),只用Vim自身的功能還是不太爽的, 還需要其它的插件,將其構(gòu)造成一個(gè)比VC爽得多的IDE。由于每個(gè)工具介紹清楚都不是一兩句話說得完的,以下只列出插件的名稱,具體的內(nèi)容google之 即可;-)其中vim插件可以到VIMer最常去的www.vim.org下載

            1. Ctags,非vim插件。Ctags是Vim必不可少的工具,它可以將C/C++的宏、變量、函數(shù)、類等一系列信息提取出來,以方便切換。Ctags還可以使用更強(qiáng)大的cscope代替。
            2. Taglist,Vim插件。Taglist是與ctags的配合的vim的強(qiáng)大工具之一,其功能是將當(dāng)前buffer的所有信息作成一個(gè)列表放在旁邊,隨時(shí)可以切換。
            3. omnicppcomplete,Vim插件。其功能顧名思義就是自動(dòng)補(bǔ)全工具(可不是簡(jiǎn)單的Ctrl+N哦),比如定義了一個(gè)類叫myClass,生成一個(gè)實(shí)例myClass c; 那么輸入c.之后就可以出現(xiàn)一個(gè)框,里面是c所有的成員函數(shù)。
            4. csupport,Vim插件。這是一個(gè)非常好的C/C++ ide,有了它什么編譯運(yùn)行一鍵搞定,定義一個(gè)類一鍵就可以給出一個(gè)模板格式,相當(dāng)實(shí)用。
            5. clewn,非Vim插件。其用處是聯(lián)結(jié)vim與gdb(沒聽說過gdb?google補(bǔ)個(gè)課吧~)。在打開clewn的時(shí)候,它利用 NetBeans,把gVim與gdb無縫地聯(lián)結(jié)起來,還可以像matlab一樣,在調(diào)試的時(shí)候把鼠標(biāo)放在變量名上,就會(huì)有一個(gè)ballon出來顯示這個(gè) 變量的指,炫吧?誰說只有emacs才能與gdb結(jié)合的好?另外它的另外一個(gè)替代品是VimGdb,這是個(gè)Vim插件。
            6. Doxygenkit。注釋與文檔合二為一的最強(qiáng)工具當(dāng)然是Doxygen,有了Doxygenkit,用Vim寫Doxygen格式一鍵搞定。

            至此,我定制的Vim的C/C++IDE就搞定了,用起來比VC那個(gè)真是爽不知多少倍了。除了以上的插件外,Vim常用的還有Vimshell,project等工具,都有很炫的效果,請(qǐng)各位VIMers 自己體會(huì)

            posted @ 2012-09-26 17:55 多彩人生 閱讀(1802) | 評(píng)論 (2)編輯 收藏

            僅列出標(biāo)題
            共25頁: First 8 9 10 11 12 13 14 15 16 Last 

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            麻豆成人久久精品二区三区免费 | 国产精品99久久久久久董美香| 国产成人综合久久精品红| 亚洲国产综合久久天堂| 三上悠亚久久精品| 一级做a爰片久久毛片人呢| 亚洲欧洲中文日韩久久AV乱码| 无码人妻久久久一区二区三区| 国产精品久久久久无码av| 久久婷婷午色综合夜啪| 精品999久久久久久中文字幕| 无码8090精品久久一区| AV色综合久久天堂AV色综合在 | 国产精品一久久香蕉国产线看观看 | 97久久超碰国产精品旧版| 韩国三级中文字幕hd久久精品| 国产成人无码精品久久久性色| 一级做a爰片久久毛片人呢| 一本色道久久HEZYO无码| 久久福利片| 91精品婷婷国产综合久久| 国内精品人妻无码久久久影院导航 | 2021国内精品久久久久久影院| 亚洲狠狠综合久久| 久久久久成人精品无码中文字幕| 色偷偷88欧美精品久久久| 久久综合综合久久97色| 久久99精品久久久久子伦| 久久精品国产久精国产果冻传媒| 久久精品国产一区二区电影| 91久久精品电影| 一本伊大人香蕉久久网手机| 久久美女人爽女人爽| 精品久久人妻av中文字幕| 久久免费的精品国产V∧| 亚洲人成伊人成综合网久久久| 精品久久久久久久久免费影院| 亚洲性久久久影院| 国内精品久久久久影院亚洲| 国产精品久久久久久久app| 伊人久久亚洲综合影院|