C++文件和流学习笔记

1.流类型。

数据类型 描述
ofstream 输出文件流,o表示outPut
ifstream 输入文件流,i表示inPut
fstream 输入,输出文件流具备输入和输出的能力

2.文件打开。
void open(const char *filename, ios::openmode mode);
3.文件打开模式。

模式标志 描述
ios::app 追加模式,将文件内容追加到文件底部
ios::ate 文件打开后定位到文件末尾。
ios::in 打开文件用于读取。
ios::out 打开文件用于写入。
ios::trunc 如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。

4.语法示例
ofstream outfile; outfile.open("file.dat", ios::out | ios::trunc );
注意可以使用|同时将两个模式进行并用。

5.写入文件
流对象<< data << endl;

6.读取文件
文件流对象 >> data;

7.关闭文件。
void close();

8.文件写入代码。

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[])
{
    char str[100];
    ofstream outfile;
    outfile.open("dfile.txt");
    cout << "input text:" << endl;
    cin.getline(str, 100);
    cin.ignore();
    outfile << str << endl;
    outfile.close();
    return 0;
}

9.文件读取代码。

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[])
{
    char str[100];
    ifstream infile;
    infile.open("dfile.txt");
    infile >> str;
    cout << str << endl;
    infile.close();
    return 0;
}

10.seekp跳过多少个字节。

// 定位到 fileObject 的第 n 个字节(假设是 ios::beg)
fileObject.seekg( n );

// 把文件的读指针从 fileObject 当前位置向后移 n 个字节
fileObject.seekg( n, ios::cur );

// 把文件的读指针从 fileObject 末尾往回移 n 个字节
fileObject.seekg( n, ios::end );

// 定位到 fileObject 的末尾
fileObject.seekg( 0, ios::end );

类似于Java流中的skip,但Java中只能从0开始往后跳。

发表回复

CAPTCHAis initialing...