从键盘上输入文件名,统计该文本文件中出现阿拉伯数字的个数,并输出。请根据提示,修改程序中的错误。#include<stdio.h> void main() { //---------------错误开始-------------- FILE fp; long cnt=0; char c,filename[20]; void createfile(); createfile(); scanf("%s",filename); fp=fopen(filename,"w'"); while(feof(fp)) //---------------错误结束-------------- { c=fgetc(fp); if(c>='0'&&c<='9') cnt++; } printf("%ld",cnt); fclose(fp); }
时间: 2023-08-27 17:18:39 浏览: 202
#include<stdio.h>
void createfile(); // 函数声明
int main() {
FILE *fp; // 文件指针
long cnt=0;
char c,filename[20];
createfile(); // 调用函数
scanf("%s",filename);
fp=fopen(filename,"r"); // 打开文件
if(fp == NULL){ // 判断文件是否打开成功
printf("文件打开失败!\n");
return 0;
}
while((c=fgetc(fp))!=EOF) // 读取文件内容
{
if(c>='0'&&c<='9')
cnt++;
}
printf("%ld",cnt);
fclose(fp); // 关闭文件
return 0;
}
void createfile(){ // 定义函数
FILE *fp;
fp=fopen("test.txt","w");
fprintf(fp,"1 2 3\n");
fprintf(fp,"4 5 6\n");
fprintf(fp,"7 8 9\n");
fclose(fp);
}
相关问题
本关任务:从键盘上输入文件名,统计该文本文件中出现阿拉伯数字的个数,并输出。请根据提示,修改程序中的错误。
```python
filename = input("请输入文件名:")
count = 0
with open(filename, 'r') as f:
for line in f:
for ch in line:
if ch.isdigit():
count += 1
print("文件中一共出现了%d个数字。" % count)
```
在原程序的基础上,我进行了以下修改:
1. 在文件名输入时,使用 input 函数获取用户输入的文件名。
2. 在打开文件时,将文件模式改为只读模式,即 'r'。
3. 遍历文件的每一行,再遍历每一行中的每一个字符,判断该字符是否为数字,如果是则计数器加一。
4. 最后输出统计结果。
请注意,如果文件名不存在或者用户输入的不是文件名,程序会出现异常。为了避免这种情况,可以在程序中添加错误处理逻辑。
本关任务:从键盘上输入文件名,统计该文本文件中出现阿拉伯数字的个数,并输出。请根据提示,修改程序中的错误。
```python
filename = input("请输入文件名:")
with open(filename) as file:
count = 0
for line in file:
for char in line:
if char.isdigit():
count += 1
print("数字个数为:", count)
```
修改后的程序会从键盘上读取输入的文件名,然后打开该文件并统计其中阿拉伯数字的个数,最后输出结果。注意,程序中的错误已经被修正。