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

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

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

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

Introduction

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

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

復制代碼 代碼如下:

         /*
         (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í)行結果
以下為引用的內容:

復制代碼 代碼如下:


         /*
         (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行
以下為引用的內容:

復制代碼 代碼如下:

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

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

37行
以下為引用的內容:

復制代碼 代碼如下:


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

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

20行

以下為引用的內容:

復制代碼 代碼如下:

             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可以拿掉,只是方面在螢幕顯示而已。

Conclusion

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

相關文章

最新評論

筠连县| 荥阳市| 卓尼县| 元江| 巴马| 禄丰县| 邹平县| 榆林市| 襄樊市| 土默特右旗| 龙陵县| 翁牛特旗| 禄丰县| 井陉县| 肇东市| 周口市| 白银市| 常熟市| 柘荣县| 米易县| 宜昌市| 大新县| 兰考县| 郁南县| 金山区| 新巴尔虎右旗| 大足县| 邵阳市| 合肥市| 武冈市| 陵川县| 石泉县| 高安市| 将乐县| 德兴市| 拜城县| 漳州市| 阿克陶县| 舟山市| 满城县| 沙坪坝区|