• <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>

            sduzgz

            2010年9月28日 #

            字符長串中短串逆序輸出

                 摘要:   閱讀全文

            posted @ 2010-09-28 10:14 sduzgz 閱讀(319) | 評論 (0)編輯 收藏

            2010年9月25日 #

            素數查找

                 摘要:   閱讀全文

            posted @ 2010-09-25 18:49 sduzgz 閱讀(502) | 評論 (4)編輯 收藏

            2010年9月16日 #

            虛函數,多態,抽象類,接口別人的經驗

                 摘要:   閱讀全文

            posted @ 2010-09-16 14:22 sduzgz 閱讀(515) | 評論 (0)編輯 收藏

            接口,虛函數及純虛函數

                 摘要:   閱讀全文

            posted @ 2010-09-16 13:39 sduzgz 閱讀(2012) | 評論 (1)編輯 收藏

            2010年9月1日 #

            無法找到預編譯文件

             

            問題:用Visual studio 2008編輯C++程序,按Ctrl+F5,出現下列錯誤:

            fatal error C1083: 無法打開預編譯頭文件:“Debug/UGFace.pch”: No such file or  directory 

            解決辦法:打開stdafx.cpp源文件,然后編譯一次,待編譯通過后再對程序執行Ctrl+F7的操作。

             

            剛研究C++語言,那知道,照著書上的例子編寫第一個程序就出錯了:

            fatal error C1010: unexpected end of file while looking for precompiled header directive

            根據提示,我改變了預處理命令的應用,甚至我注釋了#include stdafx.h這個頭文件命令,結果當然是大錯特錯,錯上加錯。編寫第一個程序就搞成這個樣子,實在是有點郁悶……于是我搜索了這一錯誤,看到如下一篇文章:

            1、用VC.NET編輯程序,按Ctrl+F7,出現下列錯誤:

            fatal error C1083: 無法打開預編譯頭文件:“Debug/UGFace.pch”: No such file or  directory 

            解決方法:修改:項目->屬性->C/C++ ->預編譯頭->不使用預編譯頭 即可。

            2、先打開一個以前做了一下的工程,編譯通過,能運行。我就稍微修改了一下代碼(只是修 改一個參數使寫入INI文件的整數由0變為10),這時編譯通不過了,提示頭文件“stdafx.h”編譯錯誤(具體錯誤提示忘記了),錯誤位置指向應用 程序類的源文件的語句“#include "stdafx.h"”。不包含這個文件是不行的,左看右看沒找出個原因來,甚至把代碼改回原來的樣子,還是不行。到網上一查,發現這么一段話:


            學用Visual C++ 6.0的第一個例程就讓我出了錯.用向導生成第一個基于對話框的Project之后,我按照書([Visual C++面向對象與可視化程序設計(第二版)]清華大學出版社pp76)上的例子開始了我的第一個程序,當我按照書上的源程序一個字一個字地輸進去之后,始 終有一個錯誤:fatal error C1010: unexpected end of file while looking for precompiled header directive.找了無數次之后,我決定把向導生成的包括頭文件的語句:include"StdAfx.h"保留(而這之前我是把它刪掉了的,因為書 上的例子沒有這句.)咦,這下就對了.這是為什么呢?我百思不得其解.

                來到我的VC源代碼目錄,我注意到每個Project每個Project下面的DEBUG文件夾都特別大,而且一個擴展名為 .pch的文件占去了絕大部分,我刪掉之好像對程序編譯運行沒有什么影響.于是抱著對.pch文件的好奇,我在網上搜到了我疑惑之處的解答.這就是 VC++6.0給我們帶來的:預編譯頭文件.預編譯頭文件(一般擴展名為.PCH),是把一個工程中較穩定的代碼預先編譯好放在一個文件(.PCH)里. 這些預先編譯好的代碼可以是任何的C/C++代碼--甚至可以是inline函數,只是它們在整個工程中是較為穩定的,即在工程開發過程中不會經常被修改 的代碼.

                為什么需要預編譯頭文件?

                一言以蔽之:提高編譯速度.一般地,編譯器以文件為單位編譯,如果修改了一工程中的一個文件則所有文件都要重新編譯,包括頭文件里的所有東西 (eg.Macro宏,Preprocessor預處理),而VC程序中,這些頭文件中所包括的東西往往是非常大的,編譯之將占很長的時間.但它們又不常 被修改,是較穩定的,為單獨的一個小文件而重新編譯整個工程的所有文件導致編譯效率下降,因此引入了.PCH文件.

                如何使用預編譯頭文件以提高編譯速度?

                要使用預編譯頭文件,必須指定一個頭文件(.H),它包含我們不會經常修改的代碼和其他的頭文件,然后用這個頭文件(.H)來生成一個預編譯頭文件 (.PCH)VC默認的頭文件就是StdAfx.h,因為頭文件是不能編譯的,所以我們還需要一個.CPP文件來作橋梁,VC默認的文件為 StdAfx.cpp,這個文件里只有一句代碼就是:#include "StdAfx.h".接下來要用它生成.PCH文件,涉及到幾個重要的預編譯指令:/Yu,/Yc,/Yx,/Fp.簡單地說,/Yc是用來生 成.PCH文件的編譯開關.在Project->setting->C/C++的Category里的Precompiled Header,然后在左邊的樹形視圖中選擇用來編譯生成.PCH文件的.CPP文件(默認即StdAfx.cpp)你就可以看到/Yc這個開關,它表示這 個文件編譯了以后是否生成.PCH文件(可能/Yc的c表示create)./Fp指令指定生成的.PCH文件的名字及路徑(可能/Fp的p代表 path)./Yu的u即use使用,工程中只要包括了.H文件的文件都會有這個/Yu指令.如果選擇自動Automatic...的話則原來為/Yc的 地方就換成了/Yx指令.如果選擇自動,則每次編譯時編譯器會看以前有沒有生成過.PCH文件,有則不現生成否則就再次編譯產生.PCH文件.

            注意:
            A,實際上,由Appzard項目向導生成的默認的頭文件及CPP文件StdAfx.h和StdAfx.cpp可以是任何名字的.原 因很簡單.但如果你要這樣做就要記得修改相應的Project->setting...下的幾個預編譯指(/Yc,/Yu,/Yx,/Fp)的參 數.


            B.在任何一個包括了將要預編譯的頭文件而使用了.PCH文件的工程文件的開頭,一定必須要是在最開頭,你要包含那個指定生成.PCH文件 的.H文件(通過.CPP文件包括,默認為StdAfx.cpp),如果沒包括將產生我最開頭產生的錯誤.如果不是在最開頭包括將產生讓你意想不到的莫名 其妙錯誤,如若不信,盍為試之?


            C.預編譯文件.PCH生成之很耗時間,而且生成之后它也很占磁盤空間,常在5-6M,注意項目完成之后及時清理無用的.PCH文件以節約磁盤空間.


            D.如果丟了或刪了.PCH文件而以后要再修改工程文件時,可將指定的/Yc的.CPP文件(默認為StdAfx.cpp)重新編譯一次即可再次生成.PCH文件,不用傻傻的按F7或Rebuild All

             

                照這么說,我這種情況只要重新將“StdAfx.cpp”編譯一下就可以了,一試,馬上能編譯運行了。心里不知道有多高興,因為以前碰到過幾次這樣的問題都不知道怎么解決,只好重新創建一個相同的工程。
            以前還碰到過另外一種情況(早就解決了的):新建一個工程,隨便找一個cpp文件,按ctrl+f7系統將會提示:fatal error C1083: 無法打開預編譯的頭文件:”Debug/xxx.pch”: No such file or directory(其中xxx是工程的名字)這種情況也是一樣的原因,為vc的stdafx.h頭文件未編譯所致。也可以這樣解決:先F7,編譯后再 ctrf+f7。
            看來什么東西都要從原理入手,才能更容易地解決。

            posted @ 2010-09-01 10:12 sduzgz 閱讀(954) | 評論 (1)編輯 收藏

            蛇形矩陣別人的方法

             1#include <iostream>
             2#include <cmath>
             3const int MAX =  0xFF;
             4using namespace std;
             5int n;
             6int G[MAX][MAX];
             7int main(void)
             8{
             9        int i,j,n,cnt;
            10        while(cin>>n)
            11        {
            12                cnt = 0;
            13                memset(G,0,sizeof(G));
            14                G[0][0= 1;
            15                G[n-1][n-1= n*n;
            16                int tx,ty;
            17                cnt = 1;
            18                for(i=1;i<n;i++)
            19                {
            20                        if(i%2 == 1)  //關于對角線對稱的點一起得到,上半部分的從左上頂點值往后推,下半部分從右下頂點往前推
            21                        {
            22                                tx = i;ty = 0;
            23                                G[i][0= G[i-1][0+ 1;
            24                                while(tx > 0)
            25                                {
            26                                        G[--tx][++ty] = G[tx+1][ty-1+ 1;
            27                                }

            28
            29                                tx = n-i-1;ty = n-1;
            30                                G[tx][ty] = G[tx+1][ty] - 1;
            31                                while(tx < n-1)
            32                                {
            33                                        G[++tx][--ty] = G[tx-1][ty+1- 1;
            34                                }

            35                        }

            36                        else
            37                        {
            38                                tx = 0;ty = i;
            39                                G[0][i] = G[0][i-1+ 1;
            40                                while(ty > 0)
            41                                {
            42                                        G[++tx][--ty] = G[tx-1][ty+1+ 1;
            43                                }

            44
            45                                tx = n-1;ty = n-i-1;
            46                                G[tx][ty] = G[tx][ty+1- 1;
            47                                while(ty < n-1)
            48                                {
            49                                        G[--tx][++ty] = G[tx+1][ty-1- 1;
            50                                }

            51                        }

            52                }

            53                for(i=0;i<n;i++)
            54                {
            55                        for(j=0;j<n;j++)
            56                        {
            57                                cout<<G[i][j]<<" ";
            58                        }

            59                        cout<<endl;
            60                }

            61
            62        }

            63        return 0;
            64}

            posted @ 2010-09-01 09:54 sduzgz 閱讀(311) | 評論 (0)編輯 收藏

            蛇形矩陣

                 摘要:   閱讀全文

            posted @ 2010-09-01 09:49 sduzgz 閱讀(985) | 評論 (0)編輯 收藏

            2010年8月30日 #

            隨機數排序改進版

            #include<iostream>
            #include
            <stdlib.h>
            #include
            <time.h>
            //#define MAXSIZE 1001
            using namespace std;
            int main()
            {
            int Array[101];//該數組里存放1到1000的數
            //int Store[1001];//這個數組用來裝隨機數的
            int sum=0,arraysum=0;
            int temp,starti;
                
            int i;
            for (int i=0;i<=99;i++)// 求1-1000總和
             {
                  Array[i]
            =i+1;
                sum
            =sum+Array[i];   
            }

            cout
            <<"sum="<<sum<<endl;
            //產生1000個隨機數
            srand((unsigned)time(NULL));
            Array[
            100]=rand()%100;
            /*下面要隨機產生位置index然后將Array[index]上的元素與最后一個位置上的元素交換*/
            //cout<<Array[100]<<endl;
            for (i=100;i>0;i--)
            {
            srand((unsigned)time(
            0));//隨機數種子在循環外還是在循環內呢?
            int index=rand()%100;
                cout
            <<"index="<<index<<endl;
            int temp1=Array[index];
                Array[index]
            =Array[i];
                Array[i]
            =temp1;
            }

            for(i=0;i<=100;i++)
            {
               cout
            <<Array[i]<<endl;
               arraysum
            +=Array[i];
            }

            cout
            <<"arraysum="<<arraysum<<endl;
            int repeat;
                repeat
            =arraysum-sum;
                cout
            <<"repeat number is:"<<repeat<<endl;
            /*下面要對數組排序并挑出重復數*/
                
            int k=0;
             
            // 將repeat從前999個數中剔除的方法1 :
                 while(k<99)
            {
                
            if(Array[k]==repeat&&Array[k+1]==repeat)
                
            {    
                     Array[k]
            =Array[k+2];
                     Array[k
            +2]=repeat;
                }

                
            else if(Array[k]==repeat)
                
            {
                 Array[k]
            =Array[k+1];
                 Array[k
            +1]=repeat;
                }
                
                k
            ++;
            }


            /*將repeat從前999個數中剔除的方法2*/
                
            /*while(k<99)
            {
            if(Array[k]==repeat&&Array[99]!=repeat)
            {
            int temp2=Array[k];
            Array[k]=Array[99];
            Array[99]=temp2;
            }
            else if(Array[k]==repeat&&Array[100]!=repeat)
            {
            int temp2=Array[k];
            Array[k]=Array[100];
            Array[100]=temp2;
            }
            else
                {
                    k++;
               continue;
            }
               k++;
            }
            */

            /*    for(int i=0;i<=10;i++)
                {
                    cout<<Array[i]<<endl;
                }
            */

            for(i=0;i<=98;i++)
            {    
              
            for(int j=1;j<=98-i;j++)
             
            {
               
            if(Array[j-1]>Array[j])
               
            {
                temp
            =Array[j-1];
                Array[j
            -1]=Array[j];
                Array[j]
            =temp;
               }

             }

            }

                
            //Array[99]=repeat;
                
            //Array[100]=repeat;
            for( i=0;i<=100;i++)
            //printf("%d\n",Store[i]);
                cout<<Array[i]<<endl;
            cout
            <<"sum="<<i-1<<endl;
            system(
            "pause");
            return 0;
            }

            posted @ 2010-08-30 09:35 sduzgz 閱讀(325) | 評論 (0)編輯 收藏

            僅列出標題  

            My Links

            Blog Stats

            常用鏈接

            留言簿

            隨筆檔案

            搜索

            最新評論

            • 1.?re: 素數查找
            • @李現民
              奧,茅塞頓開啊,謝謝啊!
            • --張愛靜
            • 2.?re: 素數查找
            • 評論內容較長,點擊標題查看
            • --李現民
            • 3.?re: 素數查找
            • 牛人啊,我這習慣確實很多問題啊,命名空間那個我可以明白,你說的prim[i]那個循環還有最后sqrt(N)拿到外面,改成那樣有什么好處啊,雖然覺得好,但是不知道為什么。@李現民
            • --張愛靜
            • 4.?re: 素數查找
            • 評論內容較長,點擊標題查看
            • --李現民
            • 5.?re: 接口,虛函數及純虛函數
            • 分得太細反而著了相, 不要太看重語法上的區別,這些東西都是基于應用而衍生的,多研究一些設計的東西, 比仔細區分這些語法概念要合算
            • --李現民

            閱讀排行榜

            評論排行榜

            成人国内精品久久久久一区| 国产无套内射久久久国产| 7777精品久久久大香线蕉| 东京热TOKYO综合久久精品| 久久福利青草精品资源站| 久久久国产一区二区三区| 无码国内精品久久人妻| 久久www免费人成精品香蕉| 久久人人爽爽爽人久久久| 草草久久久无码国产专区| 精品一二三区久久aaa片| 精品久久人人做人人爽综合 | 亚洲午夜久久久久久久久电影网 | 99久久成人国产精品免费| 久久综合伊人77777| 成人精品一区二区久久久| 亚洲国产精品高清久久久| 久久人人爽人人澡人人高潮AV | 久久综合久久性久99毛片| 四虎国产精品免费久久久| 色狠狠久久AV五月综合| 大香伊人久久精品一区二区| 国产午夜精品久久久久九九电影| 久久久久99精品成人片试看| 中文成人无码精品久久久不卡| 欧美日韩中文字幕久久伊人| 亚洲精品国产美女久久久| 中文成人久久久久影院免费观看| 九九久久精品无码专区| 老司机国内精品久久久久| 久久精品国产第一区二区三区| 久久久久亚洲AV片无码下载蜜桃| 久久久WWW成人免费精品| 亚洲国产二区三区久久| 久久噜噜电影你懂的| 91精品国产高清久久久久久io| 人妻丰满AV无码久久不卡| 伊人久久大香线蕉亚洲五月天| 久久精品国产99国产精品亚洲| 久久人人爽人人爽人人片AV东京热| 久久精品免费网站网|