1。fputc Write character to stream将一个字符写到文件上
int fputc ( int character, FILE * stream );
成功返回character,失败返回EOF(-1)
在stdio.h中
#define putchar(c) fputc(c,stdout)
#define getchar(c) fgetc(c,stdin)
#define putc(ch,fp) fputc(ch,fp)
#define getc(fp) fgetc(fp)
2。fgetc Get character from stream从指定文件读入字符
int fgetc ( FILE * stream );
如果在执行时读字符遇到文件结束符或者a reading error happens,返回EOF(-1),并且返回出错信息,
可用 or to determine whether an error happened or the End-Of-File was reached.
如果想在一个磁盘文件顺序读入字符并在屏幕上显示出来,可以:
ch = fgetc(fp);
while ( ch != EOF )
{ putchar(ch);
ch = fgetc(fp);
}
|
但上面代码只适合应用于文本文件,对于二进制文件数据的值可能是-1,这就会导致被错误处理,
应使用feof函数来判断文件是否真的结束,如果文件结束,feof的值为1,否则为0。while(!feof(fp))
{ c=fgetc(fp);
.
}fputc与fgetc举例
将一个磁盘文件中的信息复制到另一个磁盘文件
#include <stdio.h>
int main ( int argc, char **argv )
{ FILE *in, *out;
char ch;
if (argc != 3)
{ printf("you forgot to enter a filename\n");
exit(0);
}
if ( (in = fopen(argv[1],"r")) == NULL)
{
printf("cannot open infile\n")
exit(0);
}
if ( ( out = fopen(argv[2],"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}
while(!feof(in))
{
fputc(fgetc(in),out);
}
fclose(in);
fclose(out);
return 0;
}
|
阅读(1482) | 评论(0) | 转发(0) |