C++ 指定行からファイルを読み込む方法【fread活用】
C++でいうfread関数は、ファイルからデータを読み取るための関数であり、バイナリファイルの読み取り操作に使用されます。特定の行からファイルを読み取る必要がある場合は、まず指定された行の位置に移動し、その後fread関数を呼び出して読み取り操作を行います。
以下は、指定された行からファイルの内容を読み取る方法を示す簡単なサンプルコードです。
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main() {
ifstream file("example.txt", ios::binary); // 打开文件
if (!file.is_open()) {
cout << "无法打开文件!" << endl;
return 1;
}
int line = 3; // 指定要读取的行数
int lineSize = 256; // 假设每行最大长度不超过256个字符
file.seekg(0, ios::beg); // 将文件指针定位到文件开头
for (int i = 1; i < line; i++) {
file.ignore(lineSize, '\n'); // 忽略前面的行
}
char buffer[lineSize];
file.read(buffer, lineSize); // 读取指定行的内容
cout << "第" << line << "行的内容是:" << buffer << endl;
file.close(); // 关闭文件
return 0;
}
例えば、最初にファイルexample.txtを開いて、seekg関数を使用してファイルポインタをファイルの先頭に設定しました。次にignore関数を使って最初の行をスキップし、最後にread関数を使って指定された行の内容を読み取り、それをコンソールに出力しました。
上記のコードではlineSizeが各行の最大長さであり、実際の状況に合わせて調整する必要があります。また、上記の例はテキストファイルにのみ適用されます。バイナリファイルを読み込む必要がある場合は、ifstreamのオープンモードをios::binaryに設定してください。