使用cpp编写程序,读入文件file1.txt,加行号后输出到文件file2.txt,统计并输出读入的行数和最长行的长度
时间: 2023-05-29 13:04:02 浏览: 88
```cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream in("file1.txt");
ofstream out("file2.txt");
int lineCount = 0, maxLen = 0;
string line;
while (getline(in, line)) {
lineCount++;
if (line.length() > maxLen) {
maxLen = line.length();
}
out << lineCount << " " << line << endl;
}
in.close();
out.close();
cout << "Total lines: " << lineCount << endl;
cout << "Max length: " << maxLen << endl;
return 0;
}
```
相关问题
2.编写一个程序,读入一个C++语言的源文件,每一行加上行号后保存到另一个后缀为.txt的同名文件中,同时输出到屏幕上。
好的,这是一个比较简单的程序,可以使用C++的文件流来实现。可以按照以下步骤来编写程序:
1. 打开源文件和目标文件,读入源文件的每一行并加上行号,将结果输出到目标文件和屏幕上。
2. 关闭源文件和目标文件。
下面是程序的代码实现:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string input_file = "input.cpp";
string output_file = "input.txt";
ifstream fin(input_file); // 打开源文件
ofstream fout(output_file); // 打开目标文件
if (!fin.is_open()) {
cout << "无法打开源文件:" << input_file << endl;
return 1;
}
if (!fout.is_open()) {
cout << "无法打开目标文件:" << output_file << endl;
return 1;
}
string line;
int line_num = 1;
while (getline(fin, line)) {
fout << line_num << ": " << line << endl; // 写入目标文件
cout << line_num << ": " << line << endl; // 输出到屏幕上
line_num++;
}
fin.close(); // 关闭源文件
fout.close(); // 关闭目标文件
return 0;
}
```
在这个程序中,我们首先定义了两个文件名变量:input_file和output_file。然后使用ifstream和ofstream分别打开了源文件和目标文件。接下来,在while循环中,我们使用getline函数逐行读取源文件,然后将行号和行内容写入目标文件和屏幕上。最后,程序关闭了源文件和目标文件,退出了main函数。
需要注意的是,这个程序假定源文件是存在的,如果源文件不存在,程序会输出错误信息并退出。
编写一个程序,读入一个C++语言的源文件,每一行加上行号后保存到另一个后缀为.txt的同名文件中,同时输出到屏幕上。
下面是一个实现该功能的C++程序:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string filename;
cout << "请输入源文件名:";
cin >> filename;
ifstream infile(filename); // 打开源文件
if (!infile)
{
cout << "打开源文件失败!" << endl;
return 1;
}
ofstream outfile(filename + ".txt"); // 打开目标文件
if (!outfile)
{
cout << "创建目标文件失败!" << endl;
return 1;
}
string line;
int line_num = 1;
while (getline(infile, line)) // 逐行读取源文件
{
outfile << line_num << ": " << line << endl; // 保存到目标文件
cout << line_num << ": " << line << endl; // 输出到屏幕
line_num++;
}
infile.close(); // 关闭文件
outfile.close();
cout << "处理完成!" << endl;
return 0;
}
```
程序逻辑如下:
1. 首先让用户输入源文件名,存储到字符串变量filename中。
2. 使用ifstream对象打开源文件,如果打开失败,则输出错误信息并返回1。
3. 使用ofstream对象创建一个同名的.txt文件,如果创建失败,则输出错误信息并返回1。
4. 使用while循环逐行读取源文件中的数据,同时在每一行前面加上行号,并分别输出到目标文件和屏幕上。
5. 在循环结束后,关闭源文件和目标文件。
6. 输出处理完成的提示信息,并返回0。
注意:由于C++源文件的后缀通常是.cpp或者.h,而不是.txt,因此在保存目标文件时需要将后缀改为.txt,否则程序可能会覆盖原来的源文件。