主頁 > 知識庫 > .net開發(fā):為程式碼加上行號的方法詳解

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

熱門標簽:手機地圖標注如何刪除 外呼系統(tǒng)代理品牌 怎么給超市做地圖標注入駐店 辦理400電話證件 巫師3為什么地圖標注的財寶沒有 寧波自動外呼系統(tǒng)代理 十堰正規(guī)電銷機器人系統(tǒng) 外呼系統(tǒng)費用一年 世紀佳緣地圖標注怎么去掉

Abstract
若需要將程式碼放進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() (pairint, string> p) {
             cout    p.first " " p.second endl;
             outfile p.first " " p.second endl;
           }
         };
         int main() {
           mapint, 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() (pairint, string> p) {
             cout    p.first " " p.second endl;
             outfile p.first " " p.second endl;
           }
         };
         int main() {
           mapint, 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() (pairint, 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;這麼漂亮的寫法。

您可能感興趣的文章:
  • dhtmlxGrid 添加行號詳細步驟
  • DataGridView控件顯示行號的正確代碼及分析
  • FLEX 獲取DataGrid行號和列號示例代碼
  • python中使用sys模板和logging模塊獲取行號和函數(shù)名的方法
  • pycharm 使用心得(四)顯示行號
  • Python實現(xiàn)去除代碼前行號的方法
  • MyEclipse刪除網(wǎng)上復(fù)制下來的來代碼帶有的行號(正則去除行號)

標簽:山西 牡丹江 嘉興 泰州 景德鎮(zhèn) 天門 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標題《.net開發(fā):為程式碼加上行號的方法詳解》,本文關(guān)鍵詞  .net,開發(fā),為,程式,碼加,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《.net開發(fā):為程式碼加上行號的方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于.net開發(fā):為程式碼加上行號的方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章