C++学习之文件读取。

C++学习之文件读取。,第1张

头文件#include

类ifstream : 意思是input file stream(文件输入流)

类ofstream : 意思是output file stream (文件输出流)

类fstream : file stream (文件流)【几乎包含前面两种的 *** 作】

创建一个文件输入流对象:

int main(){
    ifstream inFile("filename.txt");
    return 0;
}

/**或者*/

int main(){
    ifstream inFile;
    inFile.open("filename.txt");//里面可以加上参数("filename.txt", ios::in);
    return 0;
}

/**二者效果是等同的*/

对于fstream类

int main(){
    fstream ioFile;
    ioFile.open("filename.txt", ios::in|ios::out);//形式参数表的第二个参数可以省略,因为有默认参数

    return 0;
}

对于ofstream

        文本模式:

                outFile.open("example.txt", ios::out|ios::trunc);

                如果文件不存在则创建一个,如果文件存在则清空并打开;

如果要显示指定二进制文件模式

                outFile.open("example.txt", ios::binary);

检查是否打开成功

两种函数:

        fail();   打开失败则返回true, 否则返回false;

        is_open(); 打开成功返回true, 否则返回true;/**这个用的居多*/

使用方法:

#include 
#include 
#include 
using namespace std;

int main(){
    istream inFile;
    inFile.open("file.txt");
    if(!inFile.is_open()){
        cerr << " wrong! " << endl;
        exit(EXIT_FAILURE);
    }
    ……
    
    return 0;
}
 关闭文件

        对象调用close函数;

       inFile.close();

字符流输入输出

        输入单个字符

        char ch

        inFile.get(ch);

        输出单个字符

        outFile.put(ch);

       

行输入输出

        getline(文件流对象,string contents);

块输入输出

        read 和 write 函数;(以二进制的方式读写文件)

                inFile.read(reinterpret_cast a, sizeof(a)); // 传入进去的内容一定要加上reinterpret_cast ()来转换成char类型的指针。

        这个用于输入和输出数组,对象成员之类的。

        例如:

int main(){
    int a[] = {1, 2, 3, 4};
    ofstream outFile;
    outFile.open("1.txt");
    outFile.write(reinterpret_cast(a), sizeof(a));
    outFile.close();
    return 0;
}

                

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/914922.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存