如何在 C++ 中读取文件?

读取文件意味着检索存储在文件内部的数据。C++ 的文件处理机制允许我们通过程序读取不同的文件。这些数据可以作为输入获取并存储在程序中以待处理。通常,文件可以分为两种类型:

  • 文本文件:包含以文本(字符)形式存储数据的文件。
  • 二进制文件:包含以原始二进制形式存储数据的文件。

读取这些文件数据的方法也各不相同。让我们来看看如何读取每种类型的文件。

读取文本文件

要在 C++ 中读取文本文件的内容,我们首先需要创建一个指向该文件的输入文件流 std::ifstream,并使用默认标志。之后,我们可以使用任何输入函数,例如 std::getline()>> 运算符 来读取文本数据并将其存储在字符串变量中。我们通常首选 getline(),因为它会一直读取,直到遇到换行符或任何指定的字符。

示例

假设您的文本文件名为 textFile.txt,包含以下数据:

!readFiletextFile.txt

然后,我们可以按照如下方式读取该文件的数据:

C++


CODEBLOCK_f5f7456e

输出

Hey Geek!
Welcome to GfG.
Happy Coding.

读取二进制文件

C++ 中的二进制文件用于以 0 和 1 的二进制形式存储数据。要读取二进制文件的数据,我们需要使用 std::ios::binary 标志打开输入文件流对象。INLINECODE78dcc1cd 函数无法读取二进制文件中的数据,因此我们使用 INLINECODEe97d8ea8 类的专用函数 INLINECODEcd1590b5,该函数从文件流中读取给定的数据块并将其作为字符数组返回,随后可以使用 reinterpretcast 将其转换为所需的类型。

read() 的语法

C++


CODEBLOCK_905f1cfd

其中,

  • stream:指向二进制文件的有效 ifstream 对象。
  • buffer:指向字符数组的指针,用于存储读取的数据。
  • size:要读取的字节数。

示例

假设二进制文件包含以下数据:

!writeBinaryfileBin.bin

我们可以按照如下方式读取该文件:

C++


CODEBLOCK_86f4dbef

输出

File Data: Welcome to GeeksForGeeks

我们可以从中推断出一点:要成功读取二进制文件,您需要了解其中存储的内容的格式或类型。不过对于文本文件而言并非如此,因为我们可以将其中的所有内容作为字符读取。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/34851.html
点赞
0.00 平均评分 (0% 分数) - 0