C 程序问题 2

来源:百度知道 编辑:UC知道 时间:2024/05/20 16:39:40
#include <stdio.h>
void main()
{
FILE *fp;
int num=0,digit=0;
char ch;
if ((fp=fopen("test4-1.dat","w"))==NULL)
{
printf("Cannot open the file.");
exit();
}
while(feof(fp))
{
fgetc(fp);
if(ch<='z'&&ch>='a' || ch<='Z'&&ch>='A')
num++;
if(ch<=9&&ch>=0 )
digit++;
}
fclose();
printf("The numbers of letters: %d\nThe numbers of numbers: %d\n",num,digit );
} 帮忙看哈 哪儿有错误 谢谢

fgetc(fp)是从磁盘读到内存,而if ((fp=fopen("test4-1.dat","w"))==NULL)是为写打开二进制文件。

mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。