【实验1】教材【练习12-4】 字母转换并统计行数:读取一个指定的文本文件,显示在屏幕上,如果有大写字母,则改成小写字母再输出,并根据回车符统计行数。试编写相应程序。
时间: 2024-02-20 14:55:58 浏览: 17
好的,以下是Python代码实现:
```python
filename = input("请输入文件名:")
try:
with open(filename, "r") as f:
content = f.read()
content = content.lower() # 转换成小写字母
print(content)
lines = content.count("\n") + 1 # 统计行数
print("文件共有%d行" % lines)
except FileNotFoundError:
print("文件不存在!")
```
以上程序中,首先让用户输入要读取的文件名,然后尝试打开文件。如果文件存在,则读取文件内容并转换成小写字母,然后输出到屏幕上;同时根据回车符统计行数,并输出行数统计结果。如果文件不存在,则输出错误提示信息。注意,在Windows系统中,回车符通常是“\r\n”,而在Unix/Linux系统中,回车符通常是“\n”,因此如果要支持跨平台的回车符统计,可以使用`content.count("\n") + content.count("\r")`来统计行数。
相关问题
用c语言编写6、 读取一个指定的文本文件,显示在屏幕上,如果有大写字母,则改成小写字母再输出,并统计行数。根据回车符统计文件的行数,要处理的文件名通过键盘输入字符串来指定。
好的,这是一个关于文件操作和字符串处理的问题,我会尽力回答。
首先,我们需要使用C语言的文件操作函数来读取指定的文本文件。具体步骤如下:
1. 打开文件
我们可以使用C标准库中的fopen函数来打开文件,需要传入文件名和打开方式("r"表示只读方式)。
```c
FILE *fp;
char filename[100];
printf("请输入文件名:");
scanf("%s", filename);
fp = fopen(filename, "r");
if(fp == NULL) {
printf("无法打开文件!");
return 1;
}
```
2. 读取文件内容
我们可以使用C标准库中的fgets函数来逐行读取文件内容,需要传入一个缓冲区和缓冲区大小。在读取每一行时,我们可以检查其中是否有大写字母,并将其转换为小写字母再输出。
```c
char line[100];
int line_count = 0;
while(fgets(line, sizeof(line), fp)) {
line_count++;
// 将大写字母转换为小写字母
for(int i = 0; line[i] != '\0'; i++) {
if(line[i] >= 'A' && line[i] <= 'Z') {
line[i] += 'a' - 'A';
}
}
// 输出转换后的字符串
printf("%s", line);
}
```
3. 关闭文件
使用C标准库中的fclose函数来关闭文件。
```c
fclose(fp);
```
最后,我们需要根据回车符统计文件的行数。在上面的代码中,我们使用了一个变量line_count来记录每一行的行号。因为fgets函数会将回车符也读取进来,所以我们只需要统计行数即可。
完整代码如下:
用c语言编写程序6、 读取一个指定的文本文件,显示在屏幕上,如果有大写字母,则改成小写字母再输出,并统计行数。根据回车符统计文件的行数,要处理的文件名通过键盘输入字符串来指定。
好的,下面是完整的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *fp;
char filename[100];
char line[100];
int line_count = 0;
printf("请输入文件名:");
scanf("%s", filename);
fp = fopen(filename, "r");
if(fp == NULL) {
printf("无法打开文件!");
return 1;
}
while(fgets(line, sizeof(line), fp)) {
line_count++;
// 将大写字母转换为小写字母
for(int i = 0; line[i] != '\0'; i++) {
if(line[i] >= 'A' && line[i] <= 'Z') {
line[i] += 'a' - 'A';
}
}
// 输出转换后的字符串
printf("%s", line);
}
fclose(fp);
printf("文件共有%d行。\n", line_count);
return 0;
}
```
在运行程序时,会提示用户输入文件名,然后打开文件、读取内容、统计行数、关闭文件并输出结果。如果文件不存在或打开失败,程序会输出一个错误提示。
注意,为了保证程序的可靠性,需要对用户输入的文件名进行合法性检查,避免非法字符或路径导致的错误。此外,在打印行数时最好加上换行符,以免输出混乱。