码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 文件操作

时间:2014-11-05 00:07:33      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   os   sp   文件   div   

  用于文件操作主要有两个类ifstream,ofstream,fstream,例子如下

1. 读操作

#include <ifstream>
using name space std;

int main()
{
    cCar  car;    // initialize a car object
       ifstream in;
       in.open("test.txt", ios::in); //open file
       if (!in)
       {
            cout << "open file error" << endl;
            return 0;
       }
       while (in.read((char*) &car, sizeof(car))){ // read sizeof(car) bytes from file and write into memory &car
            cout << car.color << endl;
    }
in.close(); }

2. 写操作

#include <ofstream>
using namespace std;

int main()
{
   cCar  car;    // initialize a car object
       ofstream out;
       out.open("test.txt", ios::out); //open file
       if (!out)
       {
            cout << "open file error" << endl;
            return 0;
       }
       out.write((char*) &car, sizeof(car)) // write sizeof(car) bytes from memory &car and write them into file
       out.close(); // opened file object must be closed at last.
}

3. 上面两个例子只是介绍了基本的读写操作,而且是逐字节顺序地操作文件。但是如果我想从文件中的中间一行读或写一个字节数字,可以做到不?

其实fstream, ofstream,ifstream里实现了很多方便实用的成员函数,完成刚才提到的问题只需要额外地操作一下读写指针就可轻松搞定。

何谓读写指针,就是指向当前字节流位置的指针,因此,只要我们控制好读写指针的位置,想在哪写入或读出都非常容易。

读写操作例子

#include <fstream>
using namespace std;

int main()
{
   cCar  car;    // initialize a car object
       fstream f;
       f.open("test.txt", ios::in|ios::out); //open file, it can be written and read at the same time.
       if (!f)
       {
            cout << "open file error" << endl;
            return 0;
       }
       f.seekp(3*sizeof(int), ios::beg) ; // let read/write point jump to the 4th int offset from beginning
       f.read((char*) &car, sizeof(car));
       f.seekp(10);  // location the 10th byte
       f.seekp(1, ios::cur); // jump to 1 bype from current point address
       f.seekp(1, ios::end); // jump to 1 byte from the end of file
       long loc = f.tellp(); // get the location which pointer point to
f.write("hellp", 6);
f.close(); }

 

C++ 文件操作

标签:style   blog   io   color   ar   os   sp   文件   div   

原文地址:http://www.cnblogs.com/lovemo1314/p/4075121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!