1.最详细文件介绍(做管理系统需知)

目录

一、常见文件的基本操作

二、重要的文件操作函数。

1.常用函数

2.不常用函数


一、常见文件的基本操作

//重要的文件操作函数在最底下

1.打开与关闭文件函数
fopen 打开文件函数 (成功打开后指向该流的文件指针就会被返回,失败返回NULL)

FILE  *fopen(const chat *filename,const char *mode);

fclose 关闭文件函数。(一定要记得关闭)


方法一:如打开一个D盘下code里的txt文件test.txt

FILE *fp;

fp=fopen("d:\\code\\test.txt","r");

方法二:

FILE *fp;

fp=fopen("d:/code/test.txt","r");

可以说这样就将fp指向了test这个文件。

方法一中,第一个表示转义字符,第二个表示根目录。

方法二改为“/“也可以。

用w要注意,会覆盖掉本来的信息。

但在dev C++中实验得可直接输入文本名打开(在同一目录下)

1.创建一个新文件夹

 2.新建一个文本文档,在里面写上”Merry Christmas “。

( 此处输入中文或其他符号可能会被识别为乱码!!!)

 3.新建一个.c文件放入刚才新建的文件夹中

 4.复制下面这段代码并运行。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char ch;
    FILE *fp; //声明文件
    fp=fopen("yy.txt","r"); //以只读方式打开文件
    if(fp==NULL)//一定要判断是否打开成功
    {
        printf("Fail to open the file!");
        exit(0);
    }
    while(!feof(fp))  //判断是否到文件结尾
    {
    		 ch=fgetc(fp);    //依次读取文本中一个个字符
    		 printf("%c",ch);//可在显示屏上依次打印文件中字符
    }
    fclose(fp);
    return 0;
}

5.我们运行发现

 2.往文件里追加数据(录入数据)

1.复制这串代码

#include<stdio.h>

int main()
{
		FILE *fp;
        char ch;
        if((fp=fopen("yy.txt","a+"))==NULL)
        {
                printf("Fail to open the file!\n");
                exit(1);
        }
        printf("please input the data:\n");
        do
        {
                ch=getchar();  //得到输入的字符;
                fputc(ch,fp);  //将得到的字符存入到文件中;
        }while(ch!='\n');

        printf("The data write to the file successfully!\n");
        fclose(fp);
   }

2.输入数字

 3.用记事本打开文本文档

 

二、重要的文件操作函数。

1.常用函数

1.fgetc (由文件中读取一个字符)

  • fgetc()从参数stream所指的文件中读取一个字符.若读到文件尾而无数据时便返回EOF.
  • 字符读取函数fgetc()可从文件数据流中一次读取一个字符,然后读取光标移动到下一个字符,并逐步将文件的内容读出
  • 返回值 : getc() 会返回读取到的字符,若返回 EOF 则表示到了文件尾

2.fputc(将一指定字符写入文件流中)

  • fputc 会将参数c 转为 unsigned char 后写入参数 stream 指定的文件中.
  • 被写入的文件可以用写、读写、追加方式打开,用写或读写方式,写入字符时是从文件首开始的.如需保留原有文件内容,希望写入的字符,被写入的文件若不存在,则创建该文件.
  • 每写入一个字符,文件内部位置指针向后移动一个字节.
  • fputc 函数有一个返回值,如写入成功则返回写入的字符,否则返回一个 EOF .可用此来判断写符,写入一个文件,再把该文件内容读出显示在屏幕上.
  • 返回值: fputc() 会返回写入成功的字符,即参数 c.若返回 EOF 则代表写入失败.

3.fgets(由文件中读取一字符串)

说明:  fgets() 用来从参数 stream 所指的文件内读入字符并存到参数 s 所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上 NULL 作为字符串结束.

返回值: gets() 若成功则返回 s 指针,返回 NULL 则表示有错误发生.

4.fputs(将一指定的字符串写入文件内)

说明: fputs() 用来将参数 s 所指的字符串写入到参数 stream 所指的文件内.

返回值: 若成功则返回写出的字符个数,返回 EOF 则表示有错误发生.

5.fprintf 与 fscanf(将指定字符写磁盘文件)

说明它们与 printf 和 scanf 函数相仿,都是格式化读写函数.不同的是:fprintf 和 fscanf 函数的读写对象不是终端(标准输入输出),而是磁盘文件.printf 函数是将内容输出到终端(屏幕),因此,fprintf 就是将内容输出到磁盘文件了

2.不常用函数

5.getc(由文件中读取一个字符)

  • getc() 用来从参数 stream 所指的文件中读取一个字符.若读到文件尾而无数据时便返回 EOF
  • getc() 与 fgetc() 作用相同,但 getc() 为宏定义,非真正的函数调用.

6.putc(将一指定字符写入文件中)

  • putc() 会将参数 c 转为 unsigned char 后写入参数 stream 指定的文件中
  • putc() 与 fputc()作用相同,但 putc() 为宏定义,非真正的函数调用.
  • 返回值: putc() 会返回写入成功的字符,即参数 c.若返回 EOF 则代表写入失败.

8.getchar(由标准输入设备内读进一字符)

  • getchar() 用来从标准输入设备中读取一个字符.然后将该字符从 unsigned char 转换成 int 后返回
  • getchar() 非真正函数,而是 getc(stdin) 宏定义
  • 返回值: getchar()会返回读取到的字符,若返回EOF则表示有错误发生.

9.putchar(将指定的字符写到标准输出设备)

  • putchar() 用来将参数 c 字符写到标准输出设备.
  • putchar() 非真正函数,而是 putc(c,stdout) 宏定义.
  • 返回值: putchar() 会返回输出成功的字符,即参数 c.若返回 EOF 则代表输出失败.

10.gets(由标准输入设备内读进一字符串)

说明gets() 用来从标准设备读入字符并存到参数 s 所指的内存空间,直到出现换行字符或读到文件尾为止,最后加上 NULL 作为字符串结束,由于 gets() 无法知道字符串 s 的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题.建议使用 fgets() 取代。

返回值: gets() 若成功则返回 s 指针,返回 NULL 则表示有错误发生.

11.puts(由标准输入设备内读进一字符串)

说明:  把函数的字符串写到标准输出流 stdout,在输出流中用换行符('\n')替换字符串中的结束符null 字符('\0 ') 

返回值: puts() 若成功则返回正的非零值,返回 EOF 则表示有错误发生.

                           ------     如果你的面前有阴影,那是因为你的背后有光。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值