能帮我介绍一下C++的文件操作函数么?
谢谢了!!!
4 个解决方案
#1
声明:以下资料为查找所得,出自《C++Builder5编程实例与技巧》
6.1 文件
6.1.1 C标准文件类型
文件的分类有多种方式,比如:缓冲文件和非缓冲文件;二进制文件和文本文件等。这里
所说的C标准文件是缓冲文件,可以支持两种文件类型:二进制文件和文本文件。
C标准文件类型是在头文件s t d i o . h中声明了的。
标准文件类型是通过文件指针来进行存取的,它是文件类型的变量并用如下方法声明:
FILE* fp;
这个文件指针,指向为每个使用的文件在内存中开辟的一个区域,用来存放文件的有关信
息(如文件名称、文件的状态以及文件的当前位置等参数)。这些信息是保存在一个结构类型的
变量中。该结构体的类型是由系统定义的,取名为F I L E,程序中只需要声明指向该结构的指针
即可通过它访问相应的文件。
具体对C标准文件类型(不能称其为类,只能称为类型)的使用不外乎下面一些内容:
1. 文件的打开与关闭
文件打开函数:
FILE *fopen(const char *filename, const char *mode);
FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);
FILE *freopen(const char *filename, const char *mode, FILE *str/e/a m重)新;
打开文件
FILE *_wfreopen(const wchar_t *filename, const wchar_t *mode, FILE *stream);
文件关闭函数:
int fclose(FILE *stream);
2. 文件的读写
二进制文件的读写函数:
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
文本文件的读写函数:
char *fgets(char *s, int n, FILE *stream);
wchar_t *fgetws(wchar_t *s, int n, FILE *stream); // Unicode version
int fputs(const char *s, FILE *stream);
int fputws(const wchar_t *s, FILE *stream);
int getc(FILE *stream);
wint_t getwc(FILE *stream);
int fputc(int c, FILE *stream);
wint_t fputwc(wint_t c, FILE *stream);
3. 文件的定位
int fseek(FILE *stream, long offset, int whence);
long int ftell(FILE *stream);
int fsetpos(FILE *stream, const fpos_t *pos);
int fgetpos(FILE *stream, fpos_t *pos);
4. 文件的状态检查
int feof(FILE *stream); // 检查文件是否结束
int ferror(FILE *stream); // 文件操作是否出错
void clearerr(FILE *stream); // 清除文件的所有状态
以上C标准文件的操作函数,对于C + +程序员来说,不应该有问题。对于它们的使用方法,
用户可以参考C + + B u i l d e r的联机帮助。
6.1.2 C++流式文件类
为了使文件的使用更符合C + +类的概念,C + +中将对文件的操作封装在流式系列类中。在这
个流式系列类中,不光包括文件的操作类,还包括对其他输入、输出设备进行读写的类,比如
c i n、c o u t等。
C + +流式文件类主要包括: f s t r e a m、i f s t r e a m和o f s t r e a m。分别对应文件的读写、读和写。并
支持文本和二进制文件。
对C + +流式类的使用读者可以参考标准C + +语言,或C + + B u i l d e r的联机帮助。
6.1.3 非缓冲文件
以上介绍的文件类型都是用于缓冲文件系统,即高级磁盘输入输出系统,系统为文件分配
文件指针,并通过指针访问该文件。而非缓冲文件系统则提供了低级磁盘输入输出通道,它没
有任何文件指针,使用非缓冲文件系统时,不是靠文件指针访问文件,而是用一个整数代表一
个文件,这个整数称为文件句柄( H F I L E)。
对于非缓冲文件的使用读者可以参考Windows API帮助,或C + + B u i l d e r的联机帮助。这里需
要说明的是,C + + B u i l d e r和Wi n d o w s都提供了对非缓冲文件的操作,在使用时,一定要保持前后一致,例如,你在开始打开文件时使用的是o p e n函数(C + + B u i l d e r提供),则在后面的关闭文件
时应该使用c l o s e,而不是_ l c l o s e函数。
6.1 文件
6.1.1 C标准文件类型
文件的分类有多种方式,比如:缓冲文件和非缓冲文件;二进制文件和文本文件等。这里
所说的C标准文件是缓冲文件,可以支持两种文件类型:二进制文件和文本文件。
C标准文件类型是在头文件s t d i o . h中声明了的。
标准文件类型是通过文件指针来进行存取的,它是文件类型的变量并用如下方法声明:
FILE* fp;
这个文件指针,指向为每个使用的文件在内存中开辟的一个区域,用来存放文件的有关信
息(如文件名称、文件的状态以及文件的当前位置等参数)。这些信息是保存在一个结构类型的
变量中。该结构体的类型是由系统定义的,取名为F I L E,程序中只需要声明指向该结构的指针
即可通过它访问相应的文件。
具体对C标准文件类型(不能称其为类,只能称为类型)的使用不外乎下面一些内容:
1. 文件的打开与关闭
文件打开函数:
FILE *fopen(const char *filename, const char *mode);
FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);
FILE *freopen(const char *filename, const char *mode, FILE *str/e/a m重)新;
打开文件
FILE *_wfreopen(const wchar_t *filename, const wchar_t *mode, FILE *stream);
文件关闭函数:
int fclose(FILE *stream);
2. 文件的读写
二进制文件的读写函数:
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
文本文件的读写函数:
char *fgets(char *s, int n, FILE *stream);
wchar_t *fgetws(wchar_t *s, int n, FILE *stream); // Unicode version
int fputs(const char *s, FILE *stream);
int fputws(const wchar_t *s, FILE *stream);
int getc(FILE *stream);
wint_t getwc(FILE *stream);
int fputc(int c, FILE *stream);
wint_t fputwc(wint_t c, FILE *stream);
3. 文件的定位
int fseek(FILE *stream, long offset, int whence);
long int ftell(FILE *stream);
int fsetpos(FILE *stream, const fpos_t *pos);
int fgetpos(FILE *stream, fpos_t *pos);
4. 文件的状态检查
int feof(FILE *stream); // 检查文件是否结束
int ferror(FILE *stream); // 文件操作是否出错
void clearerr(FILE *stream); // 清除文件的所有状态
以上C标准文件的操作函数,对于C + +程序员来说,不应该有问题。对于它们的使用方法,
用户可以参考C + + B u i l d e r的联机帮助。
6.1.2 C++流式文件类
为了使文件的使用更符合C + +类的概念,C + +中将对文件的操作封装在流式系列类中。在这
个流式系列类中,不光包括文件的操作类,还包括对其他输入、输出设备进行读写的类,比如
c i n、c o u t等。
C + +流式文件类主要包括: f s t r e a m、i f s t r e a m和o f s t r e a m。分别对应文件的读写、读和写。并
支持文本和二进制文件。
对C + +流式类的使用读者可以参考标准C + +语言,或C + + B u i l d e r的联机帮助。
6.1.3 非缓冲文件
以上介绍的文件类型都是用于缓冲文件系统,即高级磁盘输入输出系统,系统为文件分配
文件指针,并通过指针访问该文件。而非缓冲文件系统则提供了低级磁盘输入输出通道,它没
有任何文件指针,使用非缓冲文件系统时,不是靠文件指针访问文件,而是用一个整数代表一
个文件,这个整数称为文件句柄( H F I L E)。
对于非缓冲文件的使用读者可以参考Windows API帮助,或C + + B u i l d e r的联机帮助。这里需
要说明的是,C + + B u i l d e r和Wi n d o w s都提供了对非缓冲文件的操作,在使用时,一定要保持前后一致,例如,你在开始打开文件时使用的是o p e n函数(C + + B u i l d e r提供),则在后面的关闭文件
时应该使用c l o s e,而不是_ l c l o s e函数。
#3
谢了,各位!
#4
mark
#1
声明:以下资料为查找所得,出自《C++Builder5编程实例与技巧》
6.1 文件
6.1.1 C标准文件类型
文件的分类有多种方式,比如:缓冲文件和非缓冲文件;二进制文件和文本文件等。这里
所说的C标准文件是缓冲文件,可以支持两种文件类型:二进制文件和文本文件。
C标准文件类型是在头文件s t d i o . h中声明了的。
标准文件类型是通过文件指针来进行存取的,它是文件类型的变量并用如下方法声明:
FILE* fp;
这个文件指针,指向为每个使用的文件在内存中开辟的一个区域,用来存放文件的有关信
息(如文件名称、文件的状态以及文件的当前位置等参数)。这些信息是保存在一个结构类型的
变量中。该结构体的类型是由系统定义的,取名为F I L E,程序中只需要声明指向该结构的指针
即可通过它访问相应的文件。
具体对C标准文件类型(不能称其为类,只能称为类型)的使用不外乎下面一些内容:
1. 文件的打开与关闭
文件打开函数:
FILE *fopen(const char *filename, const char *mode);
FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);
FILE *freopen(const char *filename, const char *mode, FILE *str/e/a m重)新;
打开文件
FILE *_wfreopen(const wchar_t *filename, const wchar_t *mode, FILE *stream);
文件关闭函数:
int fclose(FILE *stream);
2. 文件的读写
二进制文件的读写函数:
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
文本文件的读写函数:
char *fgets(char *s, int n, FILE *stream);
wchar_t *fgetws(wchar_t *s, int n, FILE *stream); // Unicode version
int fputs(const char *s, FILE *stream);
int fputws(const wchar_t *s, FILE *stream);
int getc(FILE *stream);
wint_t getwc(FILE *stream);
int fputc(int c, FILE *stream);
wint_t fputwc(wint_t c, FILE *stream);
3. 文件的定位
int fseek(FILE *stream, long offset, int whence);
long int ftell(FILE *stream);
int fsetpos(FILE *stream, const fpos_t *pos);
int fgetpos(FILE *stream, fpos_t *pos);
4. 文件的状态检查
int feof(FILE *stream); // 检查文件是否结束
int ferror(FILE *stream); // 文件操作是否出错
void clearerr(FILE *stream); // 清除文件的所有状态
以上C标准文件的操作函数,对于C + +程序员来说,不应该有问题。对于它们的使用方法,
用户可以参考C + + B u i l d e r的联机帮助。
6.1.2 C++流式文件类
为了使文件的使用更符合C + +类的概念,C + +中将对文件的操作封装在流式系列类中。在这
个流式系列类中,不光包括文件的操作类,还包括对其他输入、输出设备进行读写的类,比如
c i n、c o u t等。
C + +流式文件类主要包括: f s t r e a m、i f s t r e a m和o f s t r e a m。分别对应文件的读写、读和写。并
支持文本和二进制文件。
对C + +流式类的使用读者可以参考标准C + +语言,或C + + B u i l d e r的联机帮助。
6.1.3 非缓冲文件
以上介绍的文件类型都是用于缓冲文件系统,即高级磁盘输入输出系统,系统为文件分配
文件指针,并通过指针访问该文件。而非缓冲文件系统则提供了低级磁盘输入输出通道,它没
有任何文件指针,使用非缓冲文件系统时,不是靠文件指针访问文件,而是用一个整数代表一
个文件,这个整数称为文件句柄( H F I L E)。
对于非缓冲文件的使用读者可以参考Windows API帮助,或C + + B u i l d e r的联机帮助。这里需
要说明的是,C + + B u i l d e r和Wi n d o w s都提供了对非缓冲文件的操作,在使用时,一定要保持前后一致,例如,你在开始打开文件时使用的是o p e n函数(C + + B u i l d e r提供),则在后面的关闭文件
时应该使用c l o s e,而不是_ l c l o s e函数。
6.1 文件
6.1.1 C标准文件类型
文件的分类有多种方式,比如:缓冲文件和非缓冲文件;二进制文件和文本文件等。这里
所说的C标准文件是缓冲文件,可以支持两种文件类型:二进制文件和文本文件。
C标准文件类型是在头文件s t d i o . h中声明了的。
标准文件类型是通过文件指针来进行存取的,它是文件类型的变量并用如下方法声明:
FILE* fp;
这个文件指针,指向为每个使用的文件在内存中开辟的一个区域,用来存放文件的有关信
息(如文件名称、文件的状态以及文件的当前位置等参数)。这些信息是保存在一个结构类型的
变量中。该结构体的类型是由系统定义的,取名为F I L E,程序中只需要声明指向该结构的指针
即可通过它访问相应的文件。
具体对C标准文件类型(不能称其为类,只能称为类型)的使用不外乎下面一些内容:
1. 文件的打开与关闭
文件打开函数:
FILE *fopen(const char *filename, const char *mode);
FILE *_wfopen(const wchar_t *filename, const wchar_t *mode);
FILE *freopen(const char *filename, const char *mode, FILE *str/e/a m重)新;
打开文件
FILE *_wfreopen(const wchar_t *filename, const wchar_t *mode, FILE *stream);
文件关闭函数:
int fclose(FILE *stream);
2. 文件的读写
二进制文件的读写函数:
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
文本文件的读写函数:
char *fgets(char *s, int n, FILE *stream);
wchar_t *fgetws(wchar_t *s, int n, FILE *stream); // Unicode version
int fputs(const char *s, FILE *stream);
int fputws(const wchar_t *s, FILE *stream);
int getc(FILE *stream);
wint_t getwc(FILE *stream);
int fputc(int c, FILE *stream);
wint_t fputwc(wint_t c, FILE *stream);
3. 文件的定位
int fseek(FILE *stream, long offset, int whence);
long int ftell(FILE *stream);
int fsetpos(FILE *stream, const fpos_t *pos);
int fgetpos(FILE *stream, fpos_t *pos);
4. 文件的状态检查
int feof(FILE *stream); // 检查文件是否结束
int ferror(FILE *stream); // 文件操作是否出错
void clearerr(FILE *stream); // 清除文件的所有状态
以上C标准文件的操作函数,对于C + +程序员来说,不应该有问题。对于它们的使用方法,
用户可以参考C + + B u i l d e r的联机帮助。
6.1.2 C++流式文件类
为了使文件的使用更符合C + +类的概念,C + +中将对文件的操作封装在流式系列类中。在这
个流式系列类中,不光包括文件的操作类,还包括对其他输入、输出设备进行读写的类,比如
c i n、c o u t等。
C + +流式文件类主要包括: f s t r e a m、i f s t r e a m和o f s t r e a m。分别对应文件的读写、读和写。并
支持文本和二进制文件。
对C + +流式类的使用读者可以参考标准C + +语言,或C + + B u i l d e r的联机帮助。
6.1.3 非缓冲文件
以上介绍的文件类型都是用于缓冲文件系统,即高级磁盘输入输出系统,系统为文件分配
文件指针,并通过指针访问该文件。而非缓冲文件系统则提供了低级磁盘输入输出通道,它没
有任何文件指针,使用非缓冲文件系统时,不是靠文件指针访问文件,而是用一个整数代表一
个文件,这个整数称为文件句柄( H F I L E)。
对于非缓冲文件的使用读者可以参考Windows API帮助,或C + + B u i l d e r的联机帮助。这里需
要说明的是,C + + B u i l d e r和Wi n d o w s都提供了对非缓冲文件的操作,在使用时,一定要保持前后一致,例如,你在开始打开文件时使用的是o p e n函数(C + + B u i l d e r提供),则在后面的关闭文件
时应该使用c l o s e,而不是_ l c l o s e函数。
#2
C++BUILDER的文件操作
http://www.cnblogs.com/wqlblogger/archive/2006/12/11/589053.html
http://www.cnblogs.com/wqlblogger/archive/2006/12/11/589053.html
#3
谢了,各位!
#4
mark