在C++中,可以使用fseek
函數來改變文件讀寫位置,其語法如下:
int fseek(FILE *stream, long offset, int origin);
其中,stream
是文件指針,offset
是相對于origin
的偏移量,origin
可以取以下值:
SEEK_SET
:從文件開頭開始偏移SEEK_CUR
:從當前位置開始偏移SEEK_END
:從文件末尾開始偏移以下是一個示例代碼,展示如何使用fseek
函數改變文件讀寫位置:
#include <iostream>
#include <cstdio>
int main() {
FILE *file = fopen("example.txt", "r");
if (file) {
// 移動讀寫位置到文件末尾
fseek(file, 0, SEEK_END);
// 獲取當前讀寫位置
long pos = ftell(file);
std::cout << "Current file position: " << pos << std::endl;
// 移動讀寫位置到文件開頭
fseek(file, 0, SEEK_SET);
// 獲取當前讀寫位置
pos = ftell(file);
std::cout << "Current file position: " << pos << std::endl;
fclose(file);
} else {
std::cout << "Failed to open file" << std::endl;
}
return 0;
}
在上面的示例中,首先打開一個文件并使用fseek
函數將讀寫位置移動到文件末尾,然后獲取當前讀寫位置并輸出。接著再將讀寫位置移動到文件開頭,并再次獲取當前讀寫位置并輸出。