= getc(p); //一次只读取一个字符
printf("%c", c);
}
fclose(p);//关闭文件
}
return 0;
}
while循环还可以写成这种形式:
while((c= getc(p)) != EOF)//EOF代表文件最后的一个结束标识
{
printf("%c", c);
}
1.6.2 putc写字符
int main()//putc
{
FILE *p = fopen("/home/luanbo/c_text/a.txt", "w");
if(p == NULL)
{
printf("error\n");
}
else
{
putc('a', p);
putc('b', p);
putc('c', p);
fclose(p);
printf("success !\n");
}
return 0;
}
1.6.3 用putc、getc函数实现加密、解密
int main()//用putc、getc函数实现文件加密
{
FILE *p = fopen("/home/luanbo/c_text/a.txt", "r");
FILE *p1 = fopen("/home/luanbo/c_text/b.txt", "w");
if(p == NULL)
{
printf("error\n");
}
else
{
char c = 0;
while( c = getc(p) != EOF)
{
c -= SEC;
putc(c, p1);
}
fclose(p);
fclose(p1);
printf("success! \n");
}
return 0;
}
int main()//用putc、getc函数实现文件解密
{
FILE *p = fopen("/home/luanbo/c_text/b.txt", "r");
FILE *p1 = fopen("/home/luanbo/c_text/c.txt", "w");
if(p == NULL)
{
printf("error\n");
}
else
{
char c = 0;
while( c = getc(p) != EOF)
{
c += SEC;
putc(c, p1);
}
fclose(p);
fclose(p1);
printf("success! \n");
}
return 0;
}
1.7 EOF与feof函数文件结尾
EOF代表文件最后的一个结束标志。
若已经到文件尾,feof函数返回true
while(!feof(p))
{
fgets(s, sizeof(s), p); //第一个参数是内存地址,第二个参数是这块内存的大小,第三个参数是要复制的文件
fputs(s, p1);
}
while(c = getc(p) != EOF)
{
putc(c, p1);
}
注:采用fgets函数时。用feof判断是否到结尾。采用putc函数时,用EOF判断是否到结尾。