seekg() হল iostream লাইব্রেরির একটি ফাংশন যা আমাদের একটি ফাইলে যেকোনো আর্বিট্রারি পজিশন (arbitrary position) সিক (seek) করতে দেয়। এটি মূলত সি++ ফাইল হ্যান্ডলিং-এ ইনপুট স্ট্রিম (input stream) থেকে এক্সট্রাক্ট হওয়ার জন্য নেক্সট ক্যারেক্টারের পজিশন সেট করতে ব্যবহৃত হয়।
সিনট্যাক্স (Syntax)
istream&seekg(streamoff offset, ios_base::seekdir dir); istream&seekg(streampos position); যেখানে, position: স্ট্রিম বাফারে নতুন পজিশন। offset: streamoff টাইপের একটি ইন্টিজার ভ্যালু যা স্ট্রিমের বাফারে অফসেট (offset) নির্দেশ করে, dir প্যারামিটারের সাপেক্ষে। dir: এটি সিকিং ডিরেকশন (seeking direction)। এটি ios_base::seekdir টাইপের একটি অবজেক্ট যা যেকোনো অফসেট কনস্ট্যান্ট ভ্যালু নিতে পারে। অফসেট ভ্যালুর জন্য তিনটি ডিরেকশন ব্যবহার হয়: ios_base::beg = স্ট্রিম বাফারের শুরু থেকে। ios_base::cur = স্ট্রিম বাফারের বর্তমান পজিশন থেকে। ios_base::end = স্ট্রিম বাফারের শেষ থেকে।
প্রয়োজনীয় স্টেপস ও অপারেশন
শুরু একটি ডেটা ফাইল খুলুন ইনপুট/আউটপুট অপারেশনের জন্য। 'TutorialsPoint' ফাইলে যোগ করুন। ফাইলের শুরু থেকে ৯ নম্বর পজিশনে সিক (seek) করুন। ফাইল থেকে পরবর্তী ৫টি ক্যারেক্টার বাফার F-এ পড়ুন। F-কে নাল ক্যারেক্টার দিয়ে টার্মিনেট করুন। বিষয়বস্তু প্রিন্ট করুন। ফাইল বন্ধ করুন। শেষ
উদাহরণ
#include <fstream> #include <iostream> using namespace std; int main (int argc, char** argv) { fstream File("d.txt", ios::in | ios::out ); File << "TutorialsPoint"; File.seekg(9, ios::beg); char F[9]; File.read(F, 5); F[5] = 0; cout <<F<< endl; File.close(); }
আউটপুট
Point