最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.net開發(fā):為程式碼加上行號的方法詳解

 更新時間:2013年11月06日 16:01:44   作者:  
這篇文章介紹了.net開發(fā):為程式碼加上行號的方法,有需要的朋友可以參考一下

Abstract
若需要將程式碼放進(jìn)word交報告或做文件時,或許我們會想將程式碼加上行號方便講解,如同博客園顯示程式碼那樣,我們該如何做呢?

Introduction

使用環(huán)境:Visual C++ 9.0 / Visual Studio 2008

一段C++的小程式,可以幫程式碼加上行號后輸出。
以下為引用的內(nèi)容:
map_code_line.cpp / C++

復(fù)制代碼 代碼如下:

         /*
         (C) OOMusou 2008

         Filename    : map_code_line.cpp
         Compiler    : Visual C++ 9.0 / Visual Studio 2008
         Description : Demo how to add line number for code
         Release     : 07/18/2008 1.0
         */
         #include <iostream>
         #include <fstream>
         #include <string>
         #include <map>
         #include <algorithm>
         using namespace std;
         ifstream infile("map_code_line.cpp");
         ofstream outfile("map_code_line_r.cpp");
         struct print_map {
           void operator() (pair<int, string> p) {
             cout    << p.first << " " << p.second << endl;
             outfile << p.first << " " << p.second << endl;
           }
         };
         int main() {
           map<int, string> lines;
           string line;
           int line_num = 1;
           while(getline(infile, line))
           lines[line_num++] = line;
           infile.close();
           for_each(lines.begin(), lines.end(), print_map());
           outfile.close();
         }

執(zhí)行結(jié)果
以下為引用的內(nèi)容:

復(fù)制代碼 代碼如下:


         /*
         (C) OOMusou 2008 http://oomusou.cnblogs.com

         Filename    : map_code_line.cpp
         Compiler    : Visual C++ 9.0 / Visual Studio 2008
         Description : Demo how to add line number for code
         Release     : 07/18/2008 1.0
         */
         #include <iostream>
         #include <fstream>
         #include <string>
         #include <map>
         #include <algorithm>
         using namespace std;
         ifstream infile("map_code_line.cpp");
         ofstream outfile("map_code_line_r.cpp");
         struct print_map {
           void operator() (pair<int, string> p) {
             cout    << p.first << " " << p.second << endl;
             outfile << p.first << " " << p.second << endl;
           }
         };
         int main() {
           map<int, string> lines;
           string line;
           int line_num = 1;
           while(getline(infile, line))
           lines[line_num++] = line;
           infile.close();
           for_each(lines.begin(), lines.end(), print_map());
           outfile.close();
         }


32行
以下為引用的內(nèi)容:

復(fù)制代碼 代碼如下:

          while(getline(infile, line))
          lines[line_num++] = line;

是整個程式的關(guān)鍵:使用map,key存放行號,value存放每一行的程式碼。而且隨著每一行程式碼的讀入,自動增加行號。

37行
以下為引用的內(nèi)容:

復(fù)制代碼 代碼如下:


          for_each(lines.begin(), lines.end(), print_map());

將map內(nèi)容印出,因為map無法配合copy(),只好退而求其次使用for_each()與functor。

20行

以下為引用的內(nèi)容:

復(fù)制代碼 代碼如下:

             struct print_map {
          void operator() (pair<int, string> p) {
            cout    << p.first << " " << p.second << endl;
            outfile << p.first << " " << p.second << endl;
          }
        };

配合for_each()的functor,22行的cout可以拿掉,只是方面在螢?zāi)伙@示而已。

Conclusion

STL的map是很好用的容器,尤其substring寫法,若index下沒有元素,會自動新增,所以才會有l(wèi)ines[line_number++] = line;這麼漂亮的寫法。

相關(guān)文章

最新評論

海宁市| 常宁市| 合江县| 盐亭县| 云阳县| 沾益县| 中牟县| 赤城县| 武邑县| 响水县| 丽江市| 台前县| 光山县| 海盐县| 安新县| 通榆县| 陆良县| 信宜市| 静乐县| 和静县| 惠州市| 莲花县| 南通市| 湄潭县| 阳山县| 田林县| 新源县| 开原市| 南宁市| 镇远县| 宣汉县| 崇礼县| 长海县| 封丘县| 双峰县| 景宁| 伊春市| 汕头市| 普格县| 泽州县| 高唐县|