手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >.net开发:为程式码加上行号的方法详解
.net开发:为程式码加上行号的方法详解
摘要:Abstract若需要将程式码放进word交报告或做文件时,或许我们会想将程式码加上行号方便讲解,如同博客园显示程式码那样,我们该如何做呢?...

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() (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();

}

执行结果

以下为引用的内容:

复制代码 代码如下:

/*

(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下没有元素,会自动新增,所以才会有lines[line_number++] = line;这麽漂亮的写法。

【.net开发:为程式码加上行号的方法详解】相关文章:

asp.net下url传递中文的解决方案

一个可以让.net程序在非WIN平台上运行的软件Mono

asp.net下URL处理两个小工具方法

.net 添加Cookie的4种方法

asp.net下用url重写URLReWriter实现任意二级域名的方法第1/2页

ASP.net中md5加密码的方法

asp.net中包含文件的代码及使用方法

.net开发人员常犯的错误分析小结

asp.net下日期加减的方法

asp.net实现C#绘制太极图的方法

精品推荐
分类导航