读取文件意味着检索存储在文件内部的数据。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
我们可以从中推断出一点:要成功读取二进制文件,您需要了解其中存储的内容的格式或类型。不过对于文本文件而言并非如此,因为我们可以将其中的所有内容作为字符读取。