编写一个程序,读入一个C++语言的源文件,每一行加上行号后保存到另一个后缀为.txt的同名文件中,同时输出到屏幕上。
时间: 2024-02-15 17:03:04 浏览: 119
好的,这个问题可以用C++语言来解决。下面是一个实现的代码示例:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string filename;
cout << "请输入C++语言的源文件名:" << endl;
cin >> filename;
ifstream fin(filename); // 打开输入文件流
if (!fin) {
cerr << "无法打开输入文件!" << endl;
return 1;
}
string outfilename = filename.substr(0, filename.find_last_of('.')) + ".txt";
ofstream fout(outfilename); // 打开输出文件流
if (!fout) {
cerr << "无法打开输出文件!" << endl;
return 1;
}
string line;
int linenum = 1;
while (getline(fin, line)) {
fout << linenum << ": " << line << endl; // 写入带行号的行到输出文件
cout << linenum << ": " << line << endl; // 输出到屏幕
linenum++;
}
fin.close();
fout.close();
cout << "程序执行完毕!" << endl;
return 0;
}
```
这个程序首先会询问用户输入C++语言的源文件名,然后打开输入文件流。如果无法打开输入文件,则输出错误信息并退出程序。接着,根据输入文件名生成输出文件名,并打开输出文件流。如果无法打开输出文件,则同样输出错误信息并退出程序。
然后程序会逐行读取输入文件中的内容,每行加上行号后写入输出文件,并同时输出到屏幕。最后关闭输入和输出文件流,输出程序执行完毕的信息,并返回0表示成功执行程序。
需要注意的是,这个程序只能处理纯文本的C++源文件,无法处理包含注释或字符串等复杂语法的源文件。
阅读全文