现在的位置: 首页 > 综合 > 正文

C中文件操作相关函数

2013年08月11日 ⁄ 综合 ⁄ 共 5407字 ⁄ 字号 评论关闭
 

文件操作.
2007-03-24 00:55
@函数名称:      fputchar
函数原型:      int fputchar(int ch)
函数功能:      在标准输出流(即屏幕上)的当前位置写入一个字符
函数返回:      操作正确时返回写入的字符,错误返回EOF
参数说明:      ch-要写入的字符(舍去高位字节)
所属文件:      <stdio.h>

#include <stdio.h>
int main()
{
     char msg[] ="This is a test";
     int i=0;
     while (msg)
     {
         fputchar(msg);
         i++;
     }
     return 0;
}

@函数名称:      fgets
函数原型:      char fgets(char * buf,int n,FILE * fp);
函数功能:      从fp指向的文件中读取一个长度为(n-1)的字符串,存入起始地址为buf的空间
函数返回:      返回地址buf,若遇文件结束或出错,返回NULL
函数说明:      buf-存放读入的字符数组指针,n-最大允许的读入字符数,fp-文件指针
所属文件:      <stdio.h>

#include <string.h>
#include <stdio.h>
int main()
{
     FILE *stream;
     char string[]="This is a test";
     char msg[20];
     stream=fopen("test.txt","w+";
     fwrite(string,strlen(string),1,stream);
     fseek(stream,0,SEEK_SET);
     fgets(msg,strlen(string)+1,stream);
     printf("%s",msg);
     fclose(stream);
     return 0;
}

@函数名称:      feof
函数原型:      int feof(FILE * fp);
函数功能:      检查文件是否结束.
函数返回:      遇文件结束符返回非零值,否则返回0
参数说明:      fp-文件指针
所属文件:      <stdio.h>

#include <stdio.h>
int main()
{
     FILE *stream;
     stream=fopen("test.txt","r";
     fgetc(stream);
     if (feof(stream))
         printf("We have reached end-of-file";
     fclose(stream);
     return 0;
}

函数名称:      fputc
函数原型:      int fputc(char ch,FILE *fp);
函数功能:      将字符ch输出到fp指向的文件中
函数返回:      成功,则返回该字符;否则返回非0
参数说明:      fp-文件指针,ch-要写入的字符(舍去高位字节)
所属文件:      <stdio.h>

#include <stdio.h>
int main()
{
     char msg[]="Hello world";
     int i=0;
     while (msg)
     {
         fputc(msg,stdout);
         i++;
     }
     return 0;
}

@函数名称:      fputs
函数原型:      int fputs(char * str,FILE *fp);
函数功能:      将str指向的字符串输出到fp指向的文件中
函数返回:      成功,则返回0;否则返回非0
参数说明:
所属文件:      <stdio.h>

#include <stdio.h>
int main()
{
     fputs("Hello world",stdout);
     return 0;
}

@函数名称:      fread
函数原型:      int fread(char * pt,unsigned size,unsigned n,FILE * fp);
函数功能:      从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区
函数返回:      返回所读的数据项个数,如遇文件结束或出错返回0
参数说明:      pt-存放读入数据的指针,size-每个数据单位的字节数,n-读入的数据单位个数
所属文件:      <stdio.h>

#include <string.h>
#include <stdio.h>
int main()
{
     FILE *stream;
     char msg[]="this is a test";
     char buf[20];
     if ((stream=fopen("test.txt","w+")==NULL)
     {
         fprintf(stderr,"Cannot open output file.";
         return 1;
     }
     fwrite(msg,strlen(msg)+1,1,stream);
     fseek(stream,SEEK_SET,0);
     fread(buf,strlen(msg)+1,1,stream);
     printf("%s",buf);
     fclose(stream);
     return 0;
}

@函数名称:      fwrite
函数原型:      int fwrite(char *ptr,unsigned size,unsigned n,FILE *fp);
函数功能:      把ptr所指向的n*size个字节输出到fp所指向的文件中.
函数返回:      写到fp文件中的数据项个数
参数说明:      ptr-存放要写入的数据,size-每个数据单位的字节数,n-读入的数据单位个数
所属文件:      <stdio.h>

#include <stdio.h>
struct mystruct{
     int i;
     char ch;
};
int main()
{
     FILE *stream;
     struct mystruct s;
     if ((stream=fopen("TEST.dat","wb")==NULL)
     {
         fprintf(stderr,"Cannot open output file.";
         return 1;
     }
     s.i=0;
     s.ch='A';
     fwrite(&s,sizeof(s),1,stream);
     fclose(stream);
     return 0;
}

@函数名称:      fprintf
函数原型:      int fprintf(FILE * fp,char * format,args,...);
函数功能:      把args的值以format指定的格式输出到fp所指定的流式文件中
函数返回:      实际输出的字符数
参数说明:      fp-目标文件,format-格式符
所属文件:      <stdio.h>

#include <stdio.h>
int main()
{
     FILE *in,*out;
     if ((in=fopen("AUTOEXEC.BAT","rt")==NULL)
     {
         fprintf(stderr,"Cannot open input file.";
         return 1;
     }
     if ((out=fopen("AUTOEXEC.BAK","wt")==NULL)
     {
         fprintf(stderr,"Cannot open output file.";
         return 1;
     }
     while(!feof(in))
         fputc(fgetc(in),out);
     fclose(in);
     fclose(out);
     return 0;
}

@函数名称:      fscanf
函数原型:      int fscanf(FILE * fp,char format,args,...);
函数功能:      从fp所指定的文件中按format给定的格式将数据输送到args所指向的内存单元
函数返回:      已输入的数据个数
参数说明:
所属文件:      <stdio.h>

#include <stdlib.h>
#include <stdio.h>
int main()
{
     int i;
     printf("Input an integer: ";
     if (fscanf(stdin,"%d",&i))
         printf("The integer read was: %i",i);
     else
     {
         fprintf(stderr,"Error reading an integer from stdin.";
         exit(1);
     }
     return 0;
}

@函数名称:      scanf
函数原型:      int scanf(char * format,args,...);
函数功能:      从标准输入设备按format指向的格式字符串规定的格式,输入数据给agrs所指向的单元
函数返回:      读入并赋给args的数据个数.遇文件结束返回EOF,出错返回0
参数说明:      args-指针
所属文件:      <stdio.h>

int main()
{
   int a,b,c;
   scanf("%d%d%d",&a,&b,&c);
   printf("%d,%d,%d/n",a,b,c);
   return 0;
}

@函数名称:      printf
函数原型:      int printf(char * format,args,...);
函数功能:      按format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备
函数返回:      输出字符的个数.若出错返回负数
参数说明:      format-是一个字串,或字符数组的起始地址
所属文件:      <stdio.h>

#include <stdio.h>
                                                       
int main()
{
   char c='a';
   int i=97;
   printf("%c,%d/n",c,c);
   printf("%c,%d/n",i,i);
   return 0;
}

@函数名称:      fseek
函数原型:      int fseek(FILE * fp,long offset,int base);
函数功能:      将fp所指文件的位置指针移到以base所指位置为基准,以offset为位移量的位置
函数返回:      返回当前位置,否则返回-1
参数说明:      fp-文件指针
               offset-相对于origin规定的偏移位置量
               origin-指针移动的起始位置,可设置为以下三种情况:
               SEEK_SET 文件开始位置 0
               SEEK_CUR 文件当前位置 1
               SEEK_END 文件结束位置 2
所属文件:      <stdio.h>

#include <stdio.h>
long filesize(FILE *stream);
int main()
{
     FILE *stream;
     stream=fopen("MYFILE.TXT","w+";
     fprintf(stream,"This is a test";
     printf("Filesize of MYFILE.TXT is %ld bytes",filesize(stream));
     fclose(stream);
     return 0;
}
long filesize(FILE *stream)
{
     long curpos,length;
     curpos=ftell(stream);
     fseek(stream,0L,SEEK_END);
     length=ftell(stream);
     fseek(stream,curpos,SEEK_SET);
     return length;
}

@函数名称:      ftell
函数原型:      long ftell(FILE * fp);
函数功能:      得到文件位置指示器的数值
函数返回:      fp指向的文件中的读写位置
参数说明:
所属文件:      <stdio.h>

#include <stdio.h>
int main()
{
     FILE *stream;
     stream=fopen("MYFILE.TXT","w+";
     fprintf(stream,"This is a test";
     printf("The file pointer is at byte %ld",ftell(stream));
     fclose(stream);
     return 0;

抱歉!评论已关闭.