• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    .net开发:为程式码加上行号的方法详解

    Abstract
    若需要将程式码放进word交报告或做文件时,或许我们会想将程式码加上行号方便讲解,如同博客园显示程式码那样,我们该如何做呢?

    Introduction

    使用环境: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() (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();
             }

    执行结果
    以下为引用的内容:

    复制代码 代码如下:


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

    复制代码 代码如下:

              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() (pairint, string> p) {
                cout    p.first " " p.second endl;
                outfile p.first " " p.second endl;
              }
            };

    配合for_each()的functor,22行的cout可以拿掉,只是方面在萤幕显示而已。

    Conclusion

    STL的map是很好用的容器,尤其substring写法,若index下没有元素,会自动新增,所以才会有lines[line_number++] = line;这麽漂亮的写法。

    您可能感兴趣的文章:
    • dhtmlxGrid 添加行号详细步骤
    • DataGridView控件显示行号的正确代码及分析
    • FLEX 获取DataGrid行号和列号示例代码
    • python中使用sys模板和logging模块获取行号和函数名的方法
    • pycharm 使用心得(四)显示行号
    • Python实现去除代码前行号的方法
    • MyEclipse删除网上复制下来的来代码带有的行号(正则去除行号)
    上一篇:ASP.NET(C#) 读取EXCEL另加解决日期问题的方法分享
    下一篇:轻松解决asp.net用户ASPNET登录失败问题的方法分享
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    .net开发:为程式码加上行号的方法详解 .net,开发,为,程式,码加,