【文件】一开始学的就不好

1、程序引入:

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

int main(int argc, char *argv[])
{
    int ch;
    FILE *fp;   //指向文件的指针
    long count = 0;

    //检查argc的值,查看是否有命令行参数
    //如果没有,程序打印一条用法提示后退出。
    //字符串argv[0]是该程序的名称。

    //exit()函数关闭所有打开的文件并终止程序。
    //exit()函数的参数会被传递给一些操作系统。
    //通常的约定正常终止的程序传递值为0,非正常终止的程序传递非0值。
    //不同退出值用来标识导致程序失败的原因
    if(argc != 2)
    {
        printf("Usage: %s filename\n", argv[0]);
        exit(1);
    }
    if((fp = fopen(argv[1], "r")) == NULL)
    {
        printf("Can't open %s\n", argv[1]);
        exit(1);
    }
    while((ch = getc(fp)) != EOF)
    {
        putc(ch, stdout);   //相当于putchar(ch);
        count++;
    }
    fclose(fp);
    printf("File %s has %ld characters\n", argv[1], count);
    return 0;
}


部分解释已在注释中说明。

1、fopen()函数:打开文件。

头文件:#include<stdio.h>

参数:第一个参数是要打开的文件名,更确切地说,是【包含该文件名的字符串地址】。

    第二个参数用于指定【文件打开模式】的一个字符串。如:"r","w","a","r+","w+","a+"等

    注意:①如果使用任何一种"w"模式打开一个已有的文件,文件内容将被删除,以便程序以一个空文件开始执行操作;如果该文件不存在则先创建之。

②“a”的意义是打开一个文本文件,可以写入文件,向已有文件的尾部追加内容,如果该文件不存在则创建之。

③"rb","wb","ab","rb+","wb+","ab+"的意义与上述一样,只是使用二进制模式打开文件。上文中提到的均为文本模式。

程序成功打开一个文件后,fopen()返回一个【文件指针(指向FILE的指针:FILE是stdio.h中定义的一种派生类型)】(fp),其他I/O函数用这个指针来指定该文件。

文件指针fp并【不指向实际的文件】,而是【指向一个关于文件信息的数据包】,其中包括文件I/O使用的【缓冲区信息(缓冲区的位置,缓冲区的当前缓冲能力以及使用的文件)】。

如果不能打开文件,fopen()函数返回空指针NULL,程序将退出。

2、fclose()函数:关闭由文件指针指定的文件,同时根据需要刷新缓冲区。

如果文件关闭成功,fclose返回0,否则返回EOF。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值