千家信息网

.net开发中如何为程式码加上行号

发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,本篇内容主要讲解".net开发中如何为程式码加上行号",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习".net开发中如何为程式码加上行号"吧!Abstract
千家信息网最后更新 2025年02月20日.net开发中如何为程式码加上行号

本篇内容主要讲解".net开发中如何为程式码加上行号",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习".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
#include
#include
#include
#include
using namespace std;
ifstream infile("map_code_line.cpp");
ofstream outfile("map_code_line_r.cpp");
struct print_map {
void operator() (pair p) {
cout << p.first << " " << p.second << endl;
outfile << p.first << " " << p.second << endl;
}
};
int main() {
map 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
#include
#include
#include
#include
using namespace std;
ifstream infile("map_code_line.cpp");
ofstream outfile("map_code_line_r.cpp");
struct print_map {
void operator() (pair p) {
cout << p.first << " " << p.second << endl;
outfile << p.first << " " << p.second << endl;
}
};
int main() {
map 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 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开发中如何为程式码加上行号"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0