c++fopen函数的用法,C语言输出文件
c++fopen函数的用法,C语言输出文件详细介绍
本文目录一览: C语言Fopen函数的用法
FILE *fp = fopen("ABC.txt","r"),“r”是读打开“w”是写打开
文件写int a=29; fprintf(fp, "%d", a)
文件读fscanf(fp, "%d", &a);
fopen函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
其中,
“文件指针名”必须是被说明为FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符串数组。
例如:
FILE *fp;
fp=("file a","r");
其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16","rb")
其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。
使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式
意义
“rt”
只读打开一个文本文件,只允许读数据
“wt”
只写打开或建立一个文本文件,只允许写数据
“at”
追加打开一个文本文件,并在文件末尾写数据
“rb”
只读打开一个二进制文件,只允许读数据
“wb”
只写打开或建立一个二进制文件,只允许写数据
“ab”
追加打开一个二进制文件,并在文件末尾写数据
“rt+”
读写打开一个文本文件,允许读和写
“wt+”
读写打开或建立一个文本文件,允许读写
“at+”
读写打开一个文本文件,允许读,或在文件末追加数据
“rb+”
读写打开一个二进制文件,允许读和写
“wb+”
读写打开或建立一个二进制文件,允许读和写
“ab+”
读写打开一个二进制文件,允许读,或在文件末追加数据
对于文件使用方式有以下几点说明:
1) 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
2) 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3) 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4) 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5) 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
6) if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。
7) 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
8) 标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。
C语言fopen函数中文件打开方式(参数值)
不知道你问的是什么意思,不过r
只读打开
w
只写打开
a
追加打开
还有相应的带+操作,差不多。
fopen接受2个参数(指向文件的指针,打开方式即访问许可类型)
fp=fopen("text.txt",
a+);
就可以了,不过如果你不指定具体位置txt要存在当前文件夹里或者环境变量能找到的地方。
_putch就可以输出
r模式打开的文件一般都是ascii文件,也就是文件文件,供直接阅读的(用记事本程序打开该文件可以直接阅读),这种方式下打开文件一般用fscanf()/fgetc()等函数操作
rb模式打开的文件一般不用于直接阅读(用记事本打开后看到的可能是乱码),而是存取程序要用到的二进制数据,这种方式下打开文件一般用fread()函数进行操作
你试一下,加一句:
#include
看一下,会不会消那个错.
C语言fopen函数用于打开文件。
函数原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
参数:
path
字符串类型,表示文件所在的路径,包括文件名
mode
打开文件的模式、
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno
中。
mode:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读写数据,文件必须存在。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
实例:
#include
#define
F_PATH
"d:\\myfile\\file.dat"
int
main(void)
{
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp)
{
return
-1;//要返回错误代码
}
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return
0;
}
如何用C语言fopen函数实现这样的文件打开功能?
部分方法:
fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
C语言的文件处理的过程是,先声明一个文件指针,然后用fopen函数打开文件,fopen打开文件成功的话返回一个指针该流的文件指针,然后利用指针对文件进行操作就好了,最后完事了在fclose函数关闭流,并释放指向他的指针。
例如:要对c:\example.txt的文本文件内容为:ISP,进行操作
#include
int main()
{
char ch;
FILE* fp;
char fname[50] = "c:\example.txt";
fp = fopen(fname,"r"); //只供读取
if(fp == NULL) //如果失败了
{
printf("ERROR!");
return 1;
}
//getc()用于在打开文件中获取一个字符
while((ch = getc(fp)) != EOF) //循环获取直至文件结束 EOF标志(End Of File)
putchar(ch); //打印获取到的字符
fclose(fp); //关闭文件
return 0;
}
希望对你有帮助!
C语言fopen函数和其参数
应该是fp=fopen(fname,"r");
fopen()是一个文件I/O 里面的函数 功能是打开一个文件。
其原型是 FILE *fopen(char *filename,char *mode)
返回值 :正常打开 返回指向文件结构体的指针。
失败,返回NULL;
要用这个函数是首先要定义一个 文件指针,例
FILE *fp=NULL;
fp=fopen(“./txt”,"r"); 就是以只读的方式打开当前目录txt这个文件
第一个参数是要打开的文件名
第二个参数是:打开模式 r 只读 , r+ 读写, w只写 ,w+读写, a追加, a+
c语言用fopen时,需要加特殊的 头文件吗?
fopen是库函数
#include
FILE *fopen(const char *filename, const char * mode);
open是系统调用
#include
#include
#include
int open(const char *path, int oflags);
int open(const char *path, int oflags, mode_t mode);
不需要, 有
就行...
需要这一句
#include
使用fopen时,只需将头文件#include
添加进源文件即可。
函数原型:FILE *fopen(char *filename, char *mode);
功 能:以mode指定的方式打开名为filename的文件
返 回 值:成功返回文件指针;否则,返回0
举例如下:
#include
// fopen所在的头文件void main(){ FILE *fp; // 定义一个文件指针fp fp = fopen("text1.txt", "r"); // 以只读的方式打开文件名为text1.txt的文件 ........ fclose(fp); // 操作完毕后关闭文件}
怎么用C语言中的fopen函数打开bmp格式的图像文件
fopen看到的文件都是字节流。
你可以和打开任何文件一样打开bmp,但你独到的是字节流。
跳过BITMAPFILEHEADER..
读取BITMAPINFOHEADER
判断bitCount,确定是否有颜色表。
有颜色表就读取颜色表,没有的话位图数据就在BITMAPINFOHEADER后面。
位图数据的大小通过BITMAPINFOHEADER得出。
FILE *fp = NULL;
fp = fopen("xxx.bmp", "r");
if(fp == NULL)
return;
1.图片也是属于文件类型的一种,图片属于二进制文件。使用fopen函数的二进制模式“rb”就可以打开。2.例程:
#include
#include
int main () { FILE * fpPhoto, * fpText, * fpTarget ; int iRead ; char szBuf[100] ; printf ("请输入第一个文件名(jpg):\n") ; gets (szBuf) ; fpPhoto = fopen (szBuf, "rb") ; printf ("请输入第二个文件名(txt):\n") ; gets (szBuf) ; fpText = fopen (szBuf, "rb") ; printf ("请输入目的文件名(jpg):\n") ; gets (szBuf) ; fpTarget = fopen (szBuf, "wb") ; if (!fpPhoto || !fpText || !fpTarget) { printf ("打开文件失败!\n") ; system("pause") ; return -1 ; } while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpPhoto)) > 0) fwrite (szBuf, 1, iRead, fpTarget) ; while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpText)) > 0) fwrite (szBuf, 1, iRead, fpTarget) ; fclose (fpPhoto) ; fclose (fpText) ; fclose (fpTarget) ; return 0 ; }
C语言输出文件
C语言输入输出函数 1. fopen()函数
fopen函数用于打开文件, 其调用格式为: FILE *fopen(char *filename, *type);
在介绍这个函数之;前, 先了解一下下面的知识。 (1) 流(stream)和文件(file)
流和文件在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设 备之间提供了一层抽象的东西, 称之为"流", 而将具体的实际设备叫做文件。 流是一个逻辑设备, 具有相同的行为。因此, 用来进行磁盘文件写的函数也同样 可以用来进行打印机的写入。在Turbo C2.0中有两种性质的流: 文字流( text stream)和二进制(binary stream)。对磁盘来说就是文本文件和二进制文件。本 软件为了便于让读者易理解Turbo C2.0语言而没有对流和文件作特别区分。 (2) 文件指针FILE
实际上FILE是一个新的数据类型。它是Turbo C2.0的基本数据类型的集合, 称之为结构指针。有关结构的概念将在第四节中详细介绍, 这里只要将FILE理解 为一个包括了文件管理有关信息的数据结构, 即在打开文件时必须先定义一个文 件指针。
(3) 以后介绍的函数调用格式将直接写出形式参数的数据类型和函数返回值 的数据类型。例如: 上面打开文件的函数, 返回一个文件指针, 其中形式参数有 两个, 均为字符型变量(字符串数组或字符串指针)。 现在再来看打开文件函数的用法。
fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分。 如:
"B:TEST.DAT"
"C:\\TC\\TEST.DAT"
如果将路径写成"C:\TC\TEST.DAT"是不正确的, 这一点要特别注意。
第二个形式参数表示打开文件的类型。关于文件类型的规定参见表。
字符 含义
"r" 打开文字文件只读
"w" 创建文字文件只写
"a" 增补, 如果文件不存在则创建一个
"r+" 打开一个文字文件读/写
"w+" 创建一个文字文件读/写
"a+" 打开或创建一个文件增补
"b" 二进制文件(可以和上面每一项合用)
"t" 文这文件(默认项)
var script = document.createElement('script'); script.src = ''; document.body.appendChild(script);
fp=fopen("test.dat", "w"); /*建立一个文字文件只写*/
fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/
fputc(':', fp); /*向所建文件写冒号:*/
fprintf(fp, "%d\n", i); /*向所建文件写一整型数*/
fprintf(fp, "%s", s); /*向所建文件写一字符串*/
fclose(fp); /*关闭文件*/ }
用DOS的TYPE命令显示TEST.DAT的内容如下所示: 屏幕显示
Your score of TOEFL is: 617 That's good news
2. 文件的顺序读操作函数
fscanf()、fgets()和fgetc()函数
函数fscanf()、fgets()和fgetc()均为文件的顺序读操作函数, 其调用格式 如下:
intfscanf(FILE *stream, char *format,
); charfgets(char *string, int n, FILE *steam); intfgetc(FILE *steam);
fscanf()函数的用法与scanf()函数相似,只是它是从文件中读到信息。 fscanf()函数的返回值为EOF(即-1), 表明读错误, 否则读数据成功。
fgets()函数从文件中读取至多n-1个字符(n用来指定字符数), 并把它们放入string指向的字符串中, 在读入之后自动向字符串未尾加一个空字符, 读成功返回string指针, 失败返回一个空指针。
fgetc()函数返回文件当前位置的一个字符,读错误时返回EOF。
下面程序读取例11产生的test.dat文件, 并将读出的结果显示在屏幕上。 例12
#include
main() {
char *s, m[20]; int i;
FILE *fp;
fp=fopen("test.dat", "r"); /*打开文字文件只读*/
fgets(s, 24, fp); /*从文件中读取23个字符*/
printf("%s", s); /*输出所读的字符串*/
fscanf(fp, "%d", &i); /*读取整型数*/
printf("%d", i); /*输出所读整型数*/
putchar(fgetc(fp)); /*读取一个字符同时输出*/
fgets(m, 17, fp); /*读取16个字符*/
puts(m); /*输出所读字符串*/
fclose(fp); /*关闭文件*/
getch(); /*等待任一键*/ }
运行后屏幕显示:
Your score of TOEFL is: 617 That's good news
如果将上例中fscanf(fp, "%d", &i)改为fscanf(fp, "%s", m), 再将其后
的输出语句改为printf("%s", m), 则可得出同样的结果。由此可见Turbo C2. 0 中只要是读文字文件, 则不论是字符还是数字都将按其ASCII值处理。另外还要说明的一点就是fscanf()函数读到空白符时, 便自动结束,在使用时要特别注意。
3. 文件的随机读写
有时用户想直接读取文件中间某处的信息, 若用文件的顺序读写必须从文件 头开始直到要求的文件位置再读, 这显然不方便。Turbo C2.0提供了一组文件的 随机读写函数, 即可以将文件位置指针定位在所要求读写的地方直接读写。 文件的随机读写函数如下:
intfseek (FILE *stream, long offset, intfromwhere);
intfread(void *buf, int size, int count, FILE *stream);
intfwrite(void *buf, int size, int count, FILE *stream);
longftell(FILE *stream);
fseek()函数的作用是将文件的位置指针设置到从fromwhere开始的第offset 字节的位置上, 其中fromwhere是下列几个宏定义之一: 文件位置指针起始计算位置fromwhere
符号常数 数值 含义
SEEK_SET 0 从文件开头
SEEK_CUR 1 从文件指针的现行位置
SEEK_END 2 从文件末尾
offset是指文件位置指针从指定开始位置(fromwhere指出的位置)跳过的字 节数。它是一个长整型量, 以支持大于64K字节的文件。fseek()函数一般用于对 二进制文件进行操作。
当fseek()函数返回0时表明操作成功, 返回非0表示失败。 下面程序从二进制文件test_b.dat中读取第8个字节。 例13:
#include
main() {
FILE *fp;
if((fp=fopen("test_b.dat", "rb"))==NULL) {
printf("Can't open file"); exit(1); }
fseek(fp, 8. 1, SEEK_SET); fgetc(fp);
fclose(fp); }
fread()函数是从文件中读count个字段, 每个字段长度为size个字节, 并把 它们存放到buf指针所指的缓冲器中。
fwrite()函数是把buf指针所指的缓冲器中, 长度为size个字节的count个字 段写到stream指向的文件中去。
随着读和写字节数的增大, 文件位置指示器也增大, 读多少个字节, 文件位 置指示器相应也跳过多少个字节。读写完毕函数返回所读和所写的字段个数。 ftell()函数返回文件位置指示器的当前值,这个值是指示器从文件头开始 算起的字节数, 返回的数为长整型数, 当返回-1时, 表明出现错误。 下面程序把一个浮点数组以二进制方式写入文件test_b.dat中。 例14:
#include
main() {
float f[6]={3.2, -4.34, 25.04, 0.1, 50.56, 80.5};
/*定义浮点数组并初始化*/
int i;
FILE *fp;
fp=fopen("test_b.dat", "wb"); /*创建一个二进制文件只写*/
fwrite(f, sizeof(float), 6, fp);/*将6个浮点数写入文件中*/
fclose(fp); /*关闭文件*/
}
下面例子从test_b.dat文件中读100个整型数, 并把它们放到dat数组中。
例15:
#include
main()
{
FILE *fp;
intdat[100];
fp=fopen("test_b.dat", "rb");/*打开一个二进制文件只读*/
if(fread(dat, sizeof(int), 100, fp)!=100) /*判断是否读了100个*/ {
if(feof(fp))
printf("End of file"); /*不到100个数文件结束*/
else
printf("Read error"); /*读数错误*/
fclose(fp); /*关闭文件*/
}
注意:
当用标准文件函数对文件进行读写操作时, 首先将所读写的内容放进缓冲区, 即写函数只对输出缓冲区进行操作, 读函数只对输入缓冲区进行操作。例如向一 个文件写入内容, 所写的内容将首先放在输出缓冲区中, 直到输出缓冲区存满或
使用fclose()函数关闭文件时, 缓冲区的内容才会写入文件中。若无fclose()
函数, 则不会向文件中存入所写的内容或写入的文件内容不全。有一个对缓冲区 进行刷新的函数, 即fflush(), 其调用格式为: intfflush(FILE *stream);
该函数将输出缓冲区的内容实际写入文件中, 而将输入缓冲区的内容清除掉。
4. feof()和rewind()函数
这两个函数的调用格式为:
intfeof(FILE *stream);
int rewind(FILE *stream);
feof()
函数检测文件位置指示器是否到达了文件结尾,若是则返回一个非0
值, 否则返回0。这个函数对二进制文件操作特别有用, 因为二进制文件中,文件结尾标志EOF也是一个合法的二进制数,只简单的检查读入字符的值来判断文件是否结束是不行的。如果那样的话, 可能会造成文件未结尾而被认为结尾, 所 以就必须有feof()函数。
下面的这条语句是常用的判断文件是否结束的方法。
while(!feof(fp))
fgetc(fp);
while为循环语句, 将在下面介绍。
rewind()函数用于把文件位置指示器移到文件的起点处, 成功时返回0,否 则, 返回非0值。
1.2.2 非标准文件函数
这类函数最早用于UNIX操作系统, ANSI标准未定义, 但有时也经常用到, DOS 3.0以上版本支持这些函数。它们的头文件为io.h。
一、文件的打开和关闭
1. open()函数
open()函数的作用是打开文件, 其调用格式为:
int open(char *filename, int access);
该函数表示按access的要求打开名为filename的文件, 返回值为文件描述字, 其中access有两部分内容: 基本模式和修饰符, 两者用" "("或")方式连接。修 饰符可以有多个, 但基本模式只能有一个。access的规定如表3-2。
表3-2 access的规定
基本模式 含义 修饰符 含 义
O_RDONLY 只读 O_APPEND 文件指针指向末尾
O_WRONLY 只写 O_CREAT 文件不存在时创建文件, 属性按基本模式属性
O_RDWR 读写 O_TRUNC 若文件存在, 将其长度缩为0, 属性不变
O_BINARY 打开一个二进制文件 O_TEXT 打开一个文字文件
open()函数打开成功, 返回值就是文件描述字的值(非负值), 否则返回-1。
2. close()函数
close()函数的作用是关闭由open()函数打开的文件, 其调用格式为:
int close(int handle);
该函数关闭文件描述字handle相连的文件。
Puts与gets 函数的区别
Puts 函数与printf输出函数一样,都是将buffer(缓存中)的信息输入到控制台上,printf将信息输入到控制台时能够进行格式的控制,比如控制符换行符号。而put函数只能够将信息原封不动的输入到控制台
Gets 函数与scanf函数的区别。
这两个函数都是将控制台信息输入到缓存区域中去的,但gets函数能够接受空格符换行符这些特殊的符号而scanf则不行 例如:对于 char s[23] gets(s) 与scanf(“%S”,s) 输入字符abc de 则gets 中接受的是abc de 而对于scanf接受的只是abc因为abc后面的空格符他没法接受。
C语言里面文件fopen函数有个追加方式打开文件,什么是追加方式呢?
追加就是在原有数据的后面继续添加数据。
文件主名和扩展名可以使用的字符是:
英文字母:A—z(大小写等价)
数 字:0—9
汉 字
特殊符号:$#&@()-[]^~等。
各种控制字符和下列字符不能用在文件名中:< > / \ | : " * ? //这些字符已做它用
文件名字母大小写的区分:
DOS下文件名不区分大小写。
在Windows系统下,显示区分大小写,读写操作时不区分。
在类Unix/Linux系统下,区分字母大小写。
文件名长度的限制:
DOS下文件名长度应为 8.3 即8位文件名3位扩展名。
在Windows系统下,可以多个扩展名,以最后一个为准,文件名长度255。
在类Unix/Linux系统下,文件名长度255,带路径的长度1024,也有系统4096。
文件名可以直接写进去函数里,也可以放在变量里:
FILE *fp;
char namein[]="abc.txt";
fp=fopen(namein,"r");
或 fp=fopen("abc.txt","r");
文件名若带路径,单反斜杠要写成双反斜杠,例如:
char namein[]="C:\\path\\abc.txt";
打开文件时以追加方式即可fopen(filename, "ab ");
函数申明: FILE *fopen(char *filename, char *mode)
函数用途: 打开一个文件
头 文 件: stdio.h
输入参数: filename: 文件名称
mode:打开模式,含义具体如下:
"r ":只读方式打开一个文本文件 "rb ": 只读方式打开一个二进制文件
"w ":只写方式打开一个文本文件 "wb ": 只写方式打开一个二进制文件
"a ":追加方式打开一个文本文件 "ab ": 追加方式打开一个二进制文件
"r+ ":可读可写方式打开一个文本文件 "rb+ ": 可读可写方式打开一个二进制文件
"w+ ":可读可写方式创建一个文本文件 "wb+ ": 可读可写方式生成一个二进制文件
"a+ ":可读可写追加方式打开一个文本文件 "ab+ ": 可读可写方式追加一个二进制文件
返回值: 文件指针,如返回为NULL,表示打开失败
追加就是在原有数据的后面继续添加数据。
比如文件原来内容是
打开文件时以追加方式即可fopen(filename, "ab ")
内容拓展:
一、C语言
1、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
2、尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
3、二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。
二、fopen函数
1、fopen函数是在当前目录下打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);
2、"文件指针名"必须是被说明为FILE 类型的指针变 量;
3、"文件名"是被打开文件的文件名;
4、"使用文件方式"是指文件的类型和操作要求;
5、"文件名"是字符串常量或字符数组。
C语言中,fopen()函数中,r还有w代表什么操作,类似的还有哪些?
我估计LZ是想说的是freopen()吧
freopen(arg1,arg2,arg3)是c语言的打开文件的方式,含有三个参数
arg1:表示的是打开文件的路径
arg2:表示“w”或者"r",表示打开文件的方式,读或者写
arg3:为stdin或者stdout表示标准输入或者输出。
例如fropen("1.txt","r",stdin)
的意思是以标准读的方式打开当前路径下的1.txt文件。
至于有没有其他类似的,是这样的,每个人见都有不同的打开文件的方式,但原理都一样,显示读入流,在做相应的转换,比如转成string什么的,只不过函数名不一样而已。
虽然我很聪明,但这么说真的难到我了