您的位置:首页 > 其它

数据流控制文件(自己理解的,求大神指点)

2017-12-05 20:55 127 查看
自己理解的:

    输入和输出的数据的类在C++里都是由ios这个类派生出来的。

   ios  分别派生出istream和ostream,istream又派生出ifstream,而ostream派生出oftream,最重要的的,istream和ostream他们两一起派生出了iostream ,iostream 又派生出fstream.

   istream 是用于输入的流类,cin就是该类的对象,

   ostream 是用于输出的流类,cout就是该类的对象,

   ifstream是用于从文件中读取数据的类,(对象可以自己定)

  ostream 是用于向文件中输入数据的类,(对象可以自己定)

  iostream是既能输入的类,又能输出的类;

  fstream是既能从文件中读取数据,又能向文件中写入数据的类。

 bool eof 能判读输入流是否结束。

数据流分是不是二进制数据的读入和写出

关键字时 out in app binary

out in 分别时普通的数据流的读和写的关键字

app  是文件的追加

binary 是文件以二进制的数据流的读和写的操作

文件是一种保存数据的一种工具,在C++中有一种文件的指针,可以直接在文件中修改数据,所以文件的运用有两种方法,一种是作为储存数据的工具,只有保存数据的功能,而处理数据的功能交给程序解决,第二种的方法是将文件做为数据的储存和处理的数据的工具,但是第二种的方法有一弊端,就是程序的代码比较第一种的代码量较多,而且在访问硬盘时候浪费了大量的运行时间,所以第二种方法的效率不高。

在程序中文件的操作和功能只应该是保存程序的数据,便于下一次程序的使用,不应该把文件当作内存空间来用,如果把文件当成运行内存空间来用的话,不光程序的代码多增减编程的工作量,而且在直接用文件中的指针修改数据的时候,每一次都要访问硬盘,不仅要浪费大量的程序计算的时间,而且对硬盘的的寿命也有影响。所以,这种行为是吃力不讨好的,文件的用处,最好是当作一个能不会随着程序死亡而消失的保存数据的工具

二进制数据的读和写的代码:

#include<iostream>

#include<fstream>

using namespace std;

int main()

{

     ofstream sr("zxt.txt",ios::binary);

     cout<<"请输入一个数";

     int x;

     cin>>x;

     sr.write((const char *)(&x),sizeof(int));

     sr.close();

     ifstream sc("zxt.txt",ios::binary);

     int y;

     sc.read((char *)&y,sizeof(int));

     sc.close();

     cout<<y<<endl;

 return 0;

}

不是二进制数据的读和写的代码:

 #include<fstream>

#include<iostream>

using namespace std;

int main()

{

 int a[5];

 ofstream sc("zhuxiatong.txt",ios::out);

 cout<<"请输入五个数字";

 int i;

 for(i=0;i<5;i++)

 {

  cin>>a[i];

  sc<<a[i]<<" ";

  }

 sc.close();

 ifstream sr("zhuxiatong.txt",ios::in);

    int b[5];

 for(i=0;i<5;i++)

 {

  sr>>b[i];

  cout<<b[i]<<" ";

 }

 sr.close();

   return 0;

}  by 朱夏彤                                                                          
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件 数据
相关文章推荐