C++文件读和写的使用

 更新时间:2023年04月23日 09:32:20   作者:码出世界的淡水鱼  
本文主要介绍了C++文件读和写的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

C++是一种常用的编程语言,可以用于编写各种应用程序。在这里,我们将介绍如何在C++中进行文件的读和写。在C++中,要进行文件的读或写,需要使用文件流对象。文件流对象是一种C++中的数据类型,它可以用来读写文件。文件流对象包括输入文件流对象和输出文件流对象。输入文件流对象用于从文件中读取数据,输出文件流对象用于将数据写入文件。

在使用文件流对象之前,需要包含头文件。包含此头文件后,可以使用ifstream和ofstream类型声明输入文件流对象和输出文件流对象,分别用于读取和写入文件。下面是一个示例程序:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream inputFile("input.txt");
    if (!inputFile) {
        cout << "Error opening file!" << endl;
        return 1;
    }
    ofstream outputFile("output.txt");
    if (!outputFile) {
        cout << "Error opening file!" << endl;
        return 1;
    }
    string line;
    while (getline(inputFile, line)) {
        outputFile << line << endl;
    }
    inputFile.close();
    outputFile.close();
    return 0;
}

在上述示例程序中,首先包含了头文件。接着,使用ifstream类型声明了输入文件流对象inputFile,它用于读取文件input.txt中的数据。如果打开文件失败,程序将输出“Error opening file!”并返回1,表示发生错误。接下来,使用ofstream类型声明了输出文件流对象outputFile,它用于向文件output.txt中写入数据。同样,如果打开文件失败,程序将输出“Error opening file!”并返回1,表示发生错误。然后,程序从输入文件流对象中逐行读取数据(使用getline函数),并将读取的每一行数据写入到输出文件流对象中(使用operator<<函数)。最后,关闭两个文件流对象(使用close函数)。

上述示例程序中使用了常见的文件操作知识点,包括读取文件、写入文件和文件流对象的声明和使用。下面将简要介绍这些知识点的使用方法。

  • 读取文件

要从文件中读取数据,可以使用输入文件流对象。读取文件的常用方法之一是使用getline函数。getline函数是C++的标准库函数,用于从输入流中读取一行数据。getline函数的声明如下:

istream& getline(istream& is, string& str, char delim);

其中,is表示输入流,str表示目标字符串,delim表示分隔符。使用getline函数时,每次调用都会读取输入流中的一行数据,并将其存储到目标字符串中。如果定义了分隔符,则读取到分隔符时停止。如果没有定义分隔符,则会读取一整段数据,直到读取到换行符或文件结尾为止。下面是一个示例:

// 读取文件内容
ifstream inFile("test.txt");
string line;
while (getline(inFile, line)) {
    cout << line << endl;
}
inFile.close();

在上述示例中,首先使用输入文件流对象inFile打开文件test.txt。接着,使用getline函数从文件中读取数据,每次读取一行,并将读取的数据存储到字符串line中。最后,关闭输入文件流对象inFile。

  • 写入文件

要将数据写入文件,可以使用输出文件流对象。写入文件的常用方法之一是使用operator<<函数。operator<<函数是C++的一种操作符,用于将数据插入到输出流中。使用operator<<函数时,它会将插入的数据写入到输出流中,并返回输出流。下面是一个示例:

// 写入文件内容
ofstream outFile("test.txt");
outFile << "Hello" << endl;
outFile << "World" << endl;
outFile.close();

在上述示例中,首先使用输出文件流对象outFile打开文件test.txt。接着,使用operator<<函数向文件中写入数据。在这个例子中,程序将字符串“Hello”插入到输出流中,并自动换行(在字符串后加上endl)。同样,程序又将字符串“World”插入到输出流中,并自动换行。最后,关闭输入文件流对象outFile。

  • 文件流对象的声明和使用

在C++中,文件流对象是一种C++数据类型,可以用于读写文件。C++中的文件流对象有两种类型:输入文件流对象和输出文件流对象。要声明文件流对象,需要使用ifsteam或ofstream类型。以输入文件流对象为例,使用ifsteam类型声明的语法如下:

ifstream objectName(fileName, mode);

其中,fileName表示要打开的文件名,mode表示打开文件的模式,通常为ios::in | ios::binary。打开文件的模式有以下几种:

  • ios::in:以读取方式打开文件。
  • ios::out:以写入方式打开文件(如果文件存在则会将其截断为0)。
  • ios::app:以写入方式打开文件,且将数据插入到文件末尾。
  • ios::trunc:如果文件存在,则将其截断为0。
  • ios::binary:以二进制格式打开文件。

使用输出文件流对象ofstream类型声明的语法类似:

ofstream objectName(fileName, mode);

下面是一个示例程序,演示了如何使用输入文件流对象和输出文件流对象读写文件:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
    string line;
    ifstream inFile("input.txt", ios::in | ios::binary);
    if (!inFile.is_open()) {
        cout << "Could not open file!" << endl;
        return 1;
    }
    while (getline(inFile, line)) {
        cout << line << endl;
    }
    inFile.close();

    ofstream outFile("output.txt", ios::out | ios::binary);
    if (!outFile.is_open()) {
        cout << "Could not open file!" << endl;
        return 1;
    }
    outFile << "Hello" << endl;
    outFile << "World" << endl;
    outFile.close();

    return 0;
}

在上述示例程序中,首先包含了头文件。接着,程序定义了一个字符串变量line,用于存储从文件中读取的每行数据。然后,使用输入文件流对象ifstream声明了名为inFile的输入文件流对象,并打开了文件input.txt。如果文件打开失败,则程序输出“Could not open file!”并返回1。接下来,使用while循环和getline函数读取文件中的每行数据,并将其输出到控制台中。最后,关闭输入文件流对象inFile。

接着,程序使用输出文件流对象ofstream声明了名为outFile的输出文件流对象,并打开了文件output.txt。如果文件打开失败,则程序输出“Could not open file!”并返回1。接下来,程序使用operator<<函数向输出文件流对象outFile中写入数据,在这个例子中,程序将字符串“Hello”和“World”分别写入到输出文件中,并自动换行。最后,关闭输出文件流对象outFile。

到此这篇关于C++文件读和写的使用的文章就介绍到这了,更多相关C++文件读写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++堆和栈的区别与联系讲解

    C++堆和栈的区别与联系讲解

    今天小编就为大家分享一篇关于C++堆和栈的区别与联系讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • LoadLibrary深入案例详解

    LoadLibrary深入案例详解

    这篇文章主要介绍了LoadLibrary深入案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • OpenCV中Grabcut算法的具体使用

    OpenCV中Grabcut算法的具体使用

    本文主要介绍了OpenCV中Grabcut算法的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • C++实现校园导游系统

    C++实现校园导游系统

    这篇文章主要为大家详细介绍了C++实现校园导游系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Qt设置窗体(QWidget)透明度的方法总结

    Qt设置窗体(QWidget)透明度的方法总结

    在Qt开发中,有的时候需要为窗体设置透明度。这篇文章主要为大家介绍几个Qt中窗体设置透明度的方法,文中的示例代码讲解详细,需要的可以参考一下
    2022-11-11
  • C 语言常用方法技巧

    C 语言常用方法技巧

    本文主要介绍了C语言常用方法技巧。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • C语言异常处理机制案例讲解

    C语言异常处理机制案例讲解

    这篇文章主要介绍了C语言异常处理机制案例讲解,本文讲解了异常处理机制所用的函数和具体的代码实现等,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言实现简单飞机大战

    C语言实现简单飞机大战

    这篇文章主要为大家详细介绍了C语言实现简单飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • c++ 让程序开机自动启动的方法

    c++ 让程序开机自动启动的方法

    这篇文章主要介绍了c++ 让程序开机自动启动的方法,需要的朋友可以参考下
    2017-09-09
  • C++图解单向链表类模板和iterator迭代器类模版详解

    C++图解单向链表类模板和iterator迭代器类模版详解

    这篇文章主要为大家详细介绍了C++图解单向链表类模板和iterator迭代器类模版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02

最新评论