#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-15 22:25:44 浏览: 213
以下是一份可能的代码实现:
```c
#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("无法打开文件!");
return 1;
}
while ((c = fgetc(fp)) != EOF) {
if (c >= '0' && c <= '9')
cnt++;
}
printf("%ld", cnt);
fclose(fp);
return 0;
}
void createfile() {
FILE *fp = fopen("test.txt", "w");
fputs("123abc456def", fp);
fclose(fp);
}
```
在该程序中,定义了一个 `createfile()` 函数,以便创建一个文件用于测试。程序执行时,先调用该函数创建一个名为 `test.txt` 的文件,并向其中写入一些测试数据。接着,程序从键盘输入要读取的文件名,并尝试以只读方式打开该文件。如果文件打开失败,则输出错误信息并结束程序。如果文件打开成功,则使用 `fgetc()` 函数逐个读取文件中的字符,并判断字符是否为数字。最后统计数字的个数并输出。最后再关闭文件。
阅读全文