任何文件使用之前必须打开: #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");
第二个参数的几种形式(打开文件的方式): | | | 以只读方式打开一个文本文件(不创建文件,若文件不存在则报错) | | 以写方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件) | | 以追加方式打开文件,在末尾添加内容,若文件不存在则创建文件 | | | | 以可读、可写的方式打开文件(如果文件存在则清空文件,文件不存在则创建一个文件) | | 以添加方式打开可读、可写的文件。若文件不存在则创建文件;如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
注意: 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;
} |