您的位置:首页 > 其它

fgetc,fputc,fgets,gputs,fread,fwrite

2015-08-31 23:39 399 查看
int getchar(void);


getchar函数等同于getc(stdin)。从标准输入读取一个字符

int getc(FILE *stream);


返回值:返回值是usigned char 但是我们用int类型来对待

一般会被定义成宏来使用

int fgetc(FILE *stream);


与getc函数相同,但是一般会被定义成函数使用

宏与函数:

宏不占用调度时间,只占用编译时间;

函数占用调度时间,不占用编译时间;

putchar(c); is equivalent to putc(c, stdout).


输出指向标准输出

int fputc(int c, FILE *stream);


输出到指定流文件

范例1:文件复制

/*./mycpy src dest*/

/*功能,使用fputc fgetc 实现文件复制功能*/
/*
argv[1]:src
argv[2]:dest
*/

#include <stdio.h>
#include <stdlib.h>
int main(int argc , char **argv)
{
FILE *fps ;
FILE *fpd ;
int ch;
if(argc < 3)
{
fprintf(stderr,"Usage:%s <src.file> <dest.file>\n",argv[0]);
exit(1);
}
//打开源
fps = fopen(argv[1],"r");
if(fps == NULL)
{
perror("fopen()");
exit(1);
}
//打开目标流
fpd = fopen(argv[2],"w+");
if(fpd == NULL)
{
perror("fopen()");
fclose(fps);// 目标流打开失败后,要将源流关闭
exit(1);
}
while(1)
{
ch = fgetc(fps);
if(ch == EOF)//如果读到文件尾或者读出错
break;
fputc(ch,fpd);
}
fclose(fpd);
fclose(fps);
exit(0);
}


范例二:计算一个文件的大小(fgetc fputc使用)

/*
计算一个文件的大小
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc ,char **argv)
{

FILE *fp ;
int ch  = 0 ;
int count = 0 ;
if(argc < 2)
{
fprintf(stderr ,"Usage:....\n");
exit(1);
}
fp = fopen(argv[1],"r");
if(fp == NULL )
{
perror("fopen()");
exit(1);
}
while(1)
{
ch = fgetc(fp);
if(ch == EOF)
break;
count++;
}
fprintf(stdout,"count = %d\n",count);
fclose(fp);
exit(1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: