设为首页收藏本站 |天气与日历| 2025-04-20 星期日 07:49:00 乙巳(蛇)年 三月廿三 辰时 谷雨
     
切换到窄版

私人站点

 找回密码
 立即注册
搜索
查看: 132|回复: 0

fopen()打开文件

[复制链接]

954

主题

954

帖子

3875

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3875
发表于 2021-12-7 12:54:58 | 显示全部楼层 |阅读模式
任何文件使用之前必须打开:
#include <stdio.h>
FILE * fopen(constchar * filename, constchar * mode);
功能:打开文件
参数:
        filename:需要打开的文件名,根据需要加上路径
        mode:打开文件的模式设置
返回值:
        成功:文件指针
        失败:NULL

第一个参数的几种形式:
        FILE *fp_passwd = NULL;

        //相对路径:
        //打开当前目录passdw文件:源文件(源程序)所在目录
        FILE *fp_passwd = fopen("passwd.txt", "r");

        //打开当前目录(test)下passwd.txt文件
        fp_passwd = fopen(". / test / passwd.txt", "r");

        //打开当前目录上一级目录(相对当前目录)passwd.txt文件
        fp_passwd = fopen(".. / passwd.txt", "r");

        //绝对路径:
        //打开C盘test目录下一个叫passwd.txt文件
        fp_passwd = fopen("c:/test/passwd.txt","r");

第二个参数的几种形式(打开文件的方式):
打开模式
含义
r或rb
以只读方式打开一个文本文件(不创建文件,若文件不存在则报错)
w或wb
以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)
a或ab
以追加方式打开文件,在末尾添加内容,若文件不存在则创建文件
r+或rb+
以可读、可写的方式打开文件(不创建新文件)
w+或wb+
以可读、可写的方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件)
a+或ab+
以添加方式打开可读、可写的文件。若文件不存在则创建文件;如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留。

注意:
l b是二进制模式的意思,b只是在Windows有效,在Linux用r和rb的结果是一样的
l Unix和Linux下所有的文本文件行都是\n结尾,而Windows所有的文本文件行都是\r\n结尾
l Windows平台下,以“文本”方式打开文件,不加b:
n 当读取文件的时候,系统会将所有的 "\r\n" 转换成 "\n"
n 当写入文件的时候,系统会将 "\n" 转换成 "\r\n" 写入
n "二进制"方式打开文件,则读写都不会进行这样的转换
l Unix/Linux平台下,“文本”与“二进制”模式没有区别,"\r\n" 作为两个字符原样输入输出

[C] 纯文本查看 复制代码
int main(void)
{
        FILE *fp = NULL;
        // "\\"这样的路径形式,只能在windows使用
        // "/"这样的路径形式,windows和linux平台下都可用,建议使用这种
        // 路径可以是相对路径,也可是绝对路径
        fp = fopen("../test", "w");
        //fp = fopen("..\\test", "w");
        if (fp == NULL) //返回空,说明打开失败
        {
                //perror()是标准出错打印函数,能打印调用库函数出错原因
                perror("open");
                return -1;
        }
        return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|编程站点 ( 冀ICP备2023028127号-2 )|友链申请|

GMT+8, 2025-4-20 07:49 , Processed in 0.088772 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表