C++流文件的打开与关闭

    “流”文件是C++提供的一种特殊形式的文件,也称缓冲区型文件。与普通意义文件不同,它是C++语言提
供给程序员和被除访问设备之间的一层抽象的内容,是与物理设备无关的逻辑设备。在“流”文件上,用
来写操作的函数既可用于写磁盘文件,也可用来打印机的输出,而非“流”文件与具体设备相关。C++中
有两种性质的“流”文件,即文本“流”文件(text stream)和二进制“流”文件(binar, stream)。
“流”文件通过名为FILE类型的结构来管理对文件的各种操作,定义在<stdio.h>头文件中:
 typedef struct{
  short   level; //缓冲区满/空程度
  unsigned flags; //文件状态标志
  char  fd; //文件描述符
  unsigned char hold; //如无缓冲区不能读
  short  bsize //缓冲区大小
  unsigned char *buffer;//数据传送缓冲区
  unsigned char *curp; //当前活动指针
  unsigned istemp;//临时文件指示器
  short  token;//FILE结构类型名
 }FILE;
     对于每个要处理的“流”文件,都必须为其建立一个FILE结构的信息区,可以把FILE理解为一个包含了管理“流”文件输入输出的结构类型。
“流”文件的使用:
 1.创建/打开文件//创建一个FILE结构数据区,并返回该数据区的首地址。
 2.文件定位
 3.读/写操作
 4.错误检测
 5.关闭文件//对所操作的“流”文件,包括:将缓冲区中的数据写入设备文件,以及撤消该FILE数据区
例子:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<process.h>
void error()
{
  cout<<"/nCan not open the file."<<endl;
        exit(1);//Exiting program.
}
main(){

 FILE *fp;//declare the variable
 char str[80];
    cout << " Input a string:";//input a string from the keyboard
    cin.getline(str,80);
 if((fp=fopen("test.dat","w"))==NULL)
  error();
 fputs(str,fp);//write the str to fp;
 fputs("/n",fp);
 fclose(fp);//Close the file;
 if((fp=fopen("test.dat","r"))==NULL)
  error();
 char ch;
 while((ch=fgetc(fp))!=EOF)
  cout << ch;
 cout << endl;

 fclose(fp);
}
//运行结果
//Input a string:This is my first C++ stream file program!
//输出:
//This is my first C++ stream file program!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件的创建、打开关闭操作可以通过C语言中的文件操作函数来实现。 1. 创建文件 使用C语言中的fopen函数可以创建文件。函数原型如下: ```c FILE *fopen(const char *filename, const char *mode); ``` 其中,filename表示要创建的文件名,mode表示文件打开的模式,包括“r”(只读)、“w”(只写)、“a”(追加)等。 如果文件创建成功,fopen函数将返回一个指向FILE结构体的指针,否则返回NULL。 例如,下面的代码创建一个名为“test.txt”的文件,并将其打开为写入模式: ```c #include <stdio.h> int main() { FILE *fp; fp = fopen("test.txt", "w"); if(fp == NULL) { printf("文件创建失败!"); } else { printf("文件创建成功!"); fclose(fp); } return 0; } ``` 2. 打开文件 使用C语言中的fopen函数可以打开文件。函数原型如下: ```c FILE *fopen(const char *filename, const char *mode); ``` 其中,filename表示要打开文件名,mode表示文件打开的模式,包括“r”(只读)、“w”(只写)、“a”(追加)等。 如果文件打开成功,fopen函数将返回一个指向FILE结构体的指针,否则返回NULL。 例如,下面的代码打开名为“test.txt”的文件,并将其读入到内存中: ```c #include <stdio.h> int main() { FILE *fp; char str[100]; fp = fopen("test.txt", "r"); if(fp == NULL) { printf("文件打开失败!"); } else { printf("文件打开成功!"); fgets(str, 100, fp); printf("文件内容为:%s", str); fclose(fp); } return 0; } ``` 3. 关闭文件 使用C语言中的fclose函数可以关闭文件。函数原型如下: ```c int fclose(FILE *stream); ``` 其中,stream表示要关闭文件指针。 如果文件关闭成功,fclose函数将返回0,否则返回EOF。 例如,下面的代码打开名为“test.txt”的文件,并将其关闭: ```c #include <stdio.h> int main() { FILE *fp; fp = fopen("test.txt", "r"); if(fp == NULL) { printf("文件打开失败!"); } else { printf("文件打开成功!"); fclose(fp); printf("文件关闭!"); } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值