文件处理

一、文件种类(按数据的组织类型分类)

ASCII文件(文本文件):每个字节放一个ASCII代码

二进制文件:把内存中的数据按照内存中的原样(二进制)显示出来

    如存入一个十进制的 10000D:

           内存(以二进制储存):00100111     00010000

            二进制文件(直接取出内存显示):00100111     00010000

            ASCII文件(将10000D转化为ASCII值再变为二进制):00110001     00110000     00110000    00110000    00110000

二、文件指针

 文件型指针变量           

         FILE   *fp ;

fp指向一个文件。

三、程序终止

exit()函数

1、头文件:stdlib.h

3、函数原型:void exit(int status);

3、功能:关闭所有文件,并退出程序

exit(0) 程序正常退出;

exit(1)或exit(-1) 程序异常退出。

四、文件的打开

fopen()函数

1、头文件:stdio.h

2、调用形式

文件指针名 = fopen(文件名,文件使用方式)

注意:"r"只能读取已存在的文件

五、文件的关闭      

fclose()函数

1、头文件:stdio.h

2、函数原型:int fclose( FILE *fp );

3、功能:使文件变量不再指向该文件。如果关闭成功,则返回0;失败则返回 EOF(-1)

EOF打出方式 : windows系统 control+Z,IOS系统 control+D

4、关闭是否成功的检验

if(fclose(fp) != 0)
{
    printf("Error in closing the file.\n");
}

六、文件内部的位置指针

文件打开时,系统会自动生成一个位置指针。除Append(追加)模式以外,指针初始指向文件的第一个字符;Append模式,指针初始指向文件最后一个字符。

七、读写函数

头文件:stdio.h

字符读写函数

fputc()函数

1、函数原型:int fputc (int c, FILE *fp);

2、功能:将字符(ch的ASCII值)输出到所指向的文件中。

返回值:在正常调用情况下,函数返回写入文件的字符的ASCII码值,出错时,返回EOF(-1)。

当正确写入一个字符或一个字节的数据后,文件内部写指针会自动后移一个字节的位置。

//fputc()的应用

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

int main(void)
{
    FILE *fp;
    char ch,filename[50];
    
//    输入文件名
    printf("Input the filename.\n");
    gets(filename);
    
//    创建并打开文件,检查文件是否打开成功
    if(!(fp = fopen(filename, "w+")))
    {
        printf("Error in opening the file.\n");
        exit(0);//正常退出程序
    }
    
//    将字符写入文件
    printf("Input sentence.\n");
    ch = getchar();
    while (ch != EOF)//EOF:control+D/Z
//        当输入EOF时停止
    {
        fputc(ch, fp);
        ch = getchar();
    }
    
//    关闭文件,检查文件关闭是否成功
    if (fclose(fp) != 0)
    {
        printf("Error in closing the file.\n");
    }
}

fgetc()函数

1、函数原型:int fgetc(FILE *s);

2、功能:文件中读取一个字符,读取一个字节后,光标位置后移一个字节。

读取成功返回位置指针指向的字符的值;读取失败,则返回EOF(-1)。

【注意】用fgetc()读取的文件必须是以读或读写方式打开的。

//fgetc()的应用

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

int main(void)
{
    FILE *fp;
    char ch,filename[50];
    
//    输入文件名
    printf("Input the filename.\n");
    gets(filename);
    
//    创建并打开文件,检查文件是否打开成功
    if(!(fp = fopen(filename, "r")))//以只读方式打开已存在的文件
    {
        printf("Error in opening the file.\n");
        exit(0);//正常退出程序
    }
    
//    输出文件
    ch = fgetc(fp);
    while (ch != EOF)
    {
        putchar(ch);
        ch = fgetc(fp);
    }
    
//    关闭文件,检查文件关闭是否成功
    if (fclose(fp) != 0)
    {
        printf("Error in closing the file.\n");
    }
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值