我是靠谱客的博主 年轻缘分,最近开发中收集的这篇文章主要介绍C语言文件操作一,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文件在C语言的定义如下:

typedef struct _iobuf
{
    char*   _ptr;
    int _cnt;
    char*   _base;
    int _flag;
    int _file;
    int _charbuf;
    int _bufsiz;
    char*   _tmpfname;
} FILE; //可以使用FILE来定义变量

文件操作在C语言中的定义:
/*
 * File Operations
 */
_CRTIMP FILE* __cdecl __MINGW_NOTHROW fopen (const char*, const char*);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW   freopen (const char*, const char*, FILE*);
_CRTIMP int __cdecl __MINGW_NOTHROW fflush (FILE*);
_CRTIMP int __cdecl __MINGW_NOTHROW fclose (FILE*);
//关闭文件
文件的打开函数
fopen (const char*, const char*);
第一个参数:文件名
第二个参数:文件打开方式

   文件使用方式:
      /*文件的使用方式总结:

         "r" (只读)  以只读方式打开文本文件
         "w" (只写) 打开或者建立一个文本文件,只允许写数据(会清空原有数据)
         "a" (追加) 打开一个文本文件,并在末尾写数据

         "rb" (只读) 以只读方式打开二进制文件
         "wb: (只写) 打开或者建立一个二进制文件,只允许写数据
         "ab" (追加) 打开一个二进制文件,并在末尾写数据

         "r+" (读写) 打开一个文本文件,允许读和写
         "w+" (读写) 打开或者建立一个文本文件,允许读写
         "a+" (读写) 打开一个文本文件,读或者在文件末尾写数据

         "rb+" (读写) 打开一个二进制文件,允许读和写
         "wb+" (读写) 打开或者一个二进制文件,允许读和写
         "ab+" (读写) 打开一个二进制文件,读或者在文件末尾写数据
    */

补充一下字符输出输入功能函数:

/*
 * Character Input and Output Functions
 */

_CRTIMP int __cdecl __MINGW_NOTHROW fgetc (FILE*);
/*fgetc (FILE*)读取到文件的是第一个字符
* 文件结束集返回EOF
*/
_CRTIMP char* __cdecl __MINGW_NOTHROW   fgets (char*, int, FILE*);
/* 读取文件字符串
* fgets(字符数组名,字符串中字符个数,文件指针)
*/
_CRTIMP int __cdecl __MINGW_NOTHROW fputc (int, FILE*);
/*把一个字符写入到磁盘文件中
*    int:写入的字符
*    FILE*:指向操作的文件指针
*    函数输出成功时,返回输入的字符,失败则返回EOF
*/
_CRTIMP int __cdecl __MINGW_NOTHROW fputs (const char*, FILE*);
/*  写入字符串到文件
*  fputs(字符串常量,文件指针)
*    const char*:写入的字符串
*    FILE*:指向操作的文件指针
*/
_CRTIMP char* __cdecl __MINGW_NOTHROW   gets (char*);
_CRTIMP int __cdecl __MINGW_NOTHROW puts (const char*);
_CRTIMP int __cdecl __MINGW_NOTHROW ungetc (int, FILE*);

实例一:文件的读取

#include <stdio.h>
int main()
{
          FILE *fp1, *fp2, *fp3;
          char file1[20], file2[20], file3[20], ch;
          int file_number;//文件个数
          printf("please input file1n");
          gets(file1);//输入文件路径和名称
          printf("file1:n");
          if((fp1=fopen(file1,"r"))!=NULL){
                ch=fgetc(fp1);//读取文件内容,此时ch的内容是文件的第一个文本数据
                while(ch!=EOF){//循环遍历文件内容;文本内容结束或者没有就返回EOF
                    putchar(ch);//输出字符
                    ch=fgetc(fp1);//读取下一个文本数据
                   }//读取字符
          }else{//文件为空的话就退出
            printf("can not open");
           exit(1);
          }


          printf("n please input file2n");
          gets(file2);//输入文件路径和名称
          printf("file2:n");
          if((fp2=fopen(file2,"r"))!=NULL){
                ch=fgetc(fp2);//读取文件内容
                while(ch!=EOF){//循环遍历文件内容
                    putchar(ch);//输出字符
                    ch=fgetc(fp2);}//读取字符
          }else{//文件为空的话就退出
            printf("can not open");
           exit(1);
          }

           printf("please input file3n");
            gets(file3);//输入文件路径和名称
          printf("file3:n");
          if((fp3=fopen(file3,"r"))!=NULL){
                ch=fgetc(fp3);//读取文件内容
                while(ch!=EOF){//循环遍历文件内容
                    putchar(ch);//输出字符
                    ch=fgetc(fp3);}//读取字符
          }else{//文件为空的话就退出
            printf("can not open");
           exit(1);
          }
       fclose(fp1);
       fclose(fp2);
       fclose(fp3);
        return 0;
}


实例二:往文件写入数据
#include <stdio.h>
#include<stdlib.h>
int main()
{
  int a;
  FILE *fp;
  char ch, filename[20];
  printf("请输入文件名:n");
  scanf("%s",filename);//名输入文件
  if((fp=fopen(filename,"w"))==NULL){
     printf("不能打开文件n");
     exit(0);
  }
   ch=getchar();//接收输入字符,赋给ch
   while(ch!='#'){
     fputc(ch,fp);//将读入的字符写入文件
     ch=getchar();
        }
   fclose(fp);
   return 0;

}

最后

以上就是年轻缘分为你收集整理的C语言文件操作一的全部内容,希望文章能够帮你解决C语言文件操作一所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部