在C++中,可以使用fseek和ftell函數(shù)來控制文件指針的位置和獲取當(dāng)前文件指針的位置。下面是一個(gè)簡單的示例代碼,演示了如何使用fseek和ftell函數(shù)來實(shí)現(xiàn)文件讀寫操作:
#include <iostream>
#include <fstream>
int main() {
std::ifstream inputFile("input.txt", std::ios::binary);
if (!inputFile.is_open()) {
std::cerr << "Error opening input file." << std::endl;
return 1;
}
// 獲取文件大小
inputFile.seekg(0, std::ios::end);
int fileSize = inputFile.tellg();
inputFile.seekg(0, std::ios::beg);
// 讀取文件內(nèi)容
char* buffer = new char[fileSize];
inputFile.read(buffer, fileSize);
// 輸出文件內(nèi)容
std::cout.write(buffer, fileSize);
delete[] buffer;
inputFile.close();
return 0;
}
在上面的示例中,首先打開一個(gè)二進(jìn)制文件并通過seekg函數(shù)定位到文件末尾,然后通過tellg函數(shù)獲取文件大小,再通過seekg函數(shù)回到文件開頭。接著根據(jù)文件大小來動(dòng)態(tài)分配一個(gè)char數(shù)組,使用read函數(shù)讀取文件內(nèi)容到數(shù)組中,最后使用write函數(shù)輸出文件內(nèi)容。最后別忘了關(guān)閉文件和釋放內(nèi)存。
通過這種方式,可以實(shí)現(xiàn)對文件的讀取和寫入操作,并且利用fseek和ftell函數(shù)可以更靈活地控制文件指針的位置。