/*将ASCII码值在0~127之间的字符写到磁盘上,然后从文件中读出这些字符时,
判断读出的字符是否为可打印字符,若是则直接将该字符显示到屏幕上,否则
将该字符的十进制ASCII码值显示到屏幕上*/
#include"stdio.h"
#include"stdlib.h"
#include"ctype.h"
int main()
{
FILE *fp;
char ch;
int i;
if((fp=fopen("demo.bin","wb"))==NULL) //以二进制写的形式打开文件
{
printf("Failure to open demo.bin !\n");
exit(0);
}
for(i=0;i<128;i++)
{
fputc(i,fp); //将字符的ASCII码值写入文件
}
fclose(fp);
if((fp=fopen("demo.bin","rb"))==NULL) //以二进制读的形式打开文件
{
printf("Failure to open demo.bin !\n");
exit(0);
}
while((ch=fgetc(fp))!=EOF) //从文件中读取字符直到文件末尾
{
if(isprint(ch)) //判断是否为可打印字符
printf("%c\t",ch); //若是可打印字符,则显示到屏幕上
else
printf("%d\t",ch); //若非可打印字符,则显示该字符的ASCII码值
}
fclose(fp);
return 0;
}
运行结果:
知识点:
1.函数fputc()用于将一个字符写到一个文件上,其原型为:
int fputc(int c,FILE *fp)
2.”rb”是以二进制读的形式打开文件,而”rb”则是以二进制读的形式打开文件,不可将二者混为一潭。
3.文件有打开就一定要进行关闭,否则会造成运行过在导致卡顿或死机的现象。并且是以fclose(fp)的形式进行关闭之前打开的文件。