编写程序,读入文件file1.txt,加行号后输出到文件file2.txt,统计并输出读入的行数和最长行的长度
时间: 2023-05-29 15:04:01 浏览: 114
以下是Python语言的代码:
```python
with open("file1.txt", "r") as f1, open("file2.txt", "w") as f2:
lines = f1.readlines()
line_num = len(lines)
max_len = max([len(line.strip()) for line in lines])
for i, line in enumerate(lines):
f2.write(f"{i+1}. {line}")
print(f"行数为:{line_num},最长行的长度为:{max_len}")
```
解释:
1. 打开文件`file1.txt`,并以只读模式(`"r"`)读取文件内容,使用`with`语句可以自动关闭文件。
2. 使用`readlines()`函数读取文件中所有行,并将其存储到一个列表`lines`中。
3. 使用列表解析式和`max()`函数获取最长行的长度,`strip()`函数用于去除行尾的换行符。
4. 使用`enumerate()`函数为每行添加行号,并使用`write()`函数将行号和内容写入文件`file2.txt`中。
5. 输出行数和最长行的长度。
注意:以上代码只适用于文本文件,不适用于二进制文件。
相关问题
使用cpp编写程序,读入文件file1.txt,加行号后输出到文件file2.txt,统计并输出读入的行数和最长行的长度
```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;
}
```
用c++编写程序,读入文件file1.txt,加行号后输出到file2.txt,统计并输出读入的行数和最长行的长度
好的,我明白了。下面是你的代码:
```c
#include <stdio.h>
int main()
{
FILE *f1, *f2;
char ch;
int line_count = 0, max_len = 0, len = 0;
f1 = fopen("file1.txt", "r");
if (f1 == NULL)
{
printf("Error opening file1.txt\n");
return 1;
}
f2 = fopen("file2.txt", "w");
if (f2 == NULL)
{
printf("Error creating file2.txt\n");
fclose(f1);
return 1;
}
while ((ch = fgetc(f1)) != EOF)
{
if (ch == '\n')
{
line_count++;
fprintf(f2, "%d ", line_count);
if (len > max_len)
{
max_len = len;
}
len = 0;
}
len++;
fputc(ch, f2);
}
fclose(f1);
fclose(f2);
printf("Number of lines: %d\n", line_count);
printf("Longest line length: %d\n", max_len);
return 0;
}
```
这个程序会读入文件 file1.txt,按行输出到文件 file2.txt,同时加上行号。程序还会统计输入的行数和最长行的长度,并输出这些信息。请确保输入文件存在,输出文件会在程序运行时创建。
阅读全文