এই নিবন্ধটি সি প্রোগ্রামিং ভাষায় একটি টেক্সট ফাইল পড়ার দরকারী উপায় নিয়ে আলোচনা করে।
সি-তে একটি টেক্সট ফাইল পড়ুন
সি-তে একটি টেক্সট ফাইল পড়ার জন্য চারটি পদ্ধতি রয়েছে, যা হল।
- fscanf() একটি টেক্সট ফাইল পড়তে
- fgets() একটি টেক্সট ফাইল পড়তে
- fgetc() একটি টেক্সট ফাইল পড়তে
- fread() একটি টেক্সট ফাইল পড়তে
পদ্ধতি 1: সি-তে একটি টেক্সট ফাইল পড়ার জন্য fscanf() ফাংশন ব্যবহার করে
দ্য fscanf() ফাংশন হল একটি স্ট্যান্ডার্ড লাইব্রেরি ফাংশন যা আর্গুমেন্টের অ্যারে নেয় এবং সেগুলিকে আপনার প্রোগ্রাম দ্বারা ব্যবহার করা যেতে পারে এমন মানগুলিতে রূপান্তর করে। এটি ফাইলের ভিতরে একটি বিন্যাস স্ট্রিং খুঁজে পায় এবং ফাইল থেকে পড়ার সময় একটি বিন্যাস স্ট্রিং প্রদান করে। বিন্যাস স্ট্রিংটি অবশ্যই উদ্ধৃতি (“ ”) এর মধ্যে আবদ্ধ থাকতে হবে যাতে সেগুলি আপনার প্রোগ্রামের নিজস্ব বাক্য গঠনের অংশ হিসাবে ব্যাখ্যা না করে।
দ্য fscanf() ফাংশন যুক্তি-তালিকায় আইটেম দ্বারা প্রদত্ত স্থানগুলিতে ডেটা পাঠ করে। আর্গুমেন্ট-লিস্ট এন্ট্রিগুলিকে অবশ্যই ভেরিয়েবলের দিকে নির্দেশ করতে হবে যার প্রকারগুলি ফর্ম্যাট-স্ট্রিং-এর টাইপ স্পেসিফায়ারের সাথে মেলে৷
এটি হয় EOF (ফাইলের শেষ) বা তাদের জন্য নির্ধারিত মান সহ ভেরিয়েবলের সংখ্যা দেয়।
ব্যবহার করে একটি টেক্সট ফাইল পড়ার জন্য একটি উদাহরণ দেখি fscanf() ফাংশন:
# অন্তর্ভুক্ত করুনint প্রধান ( )
{
ফাইল * ptr = fopen ( 'file_name.txt' , 'আর' ) ;
যদি ( ptr == NULL ) {
printf ( 'এমন কোন ফাইল বিদ্যমান নেই।' ) ;
ফিরে 0 ;
}
চার বুফ [ 100 ] ;
যখন ( fscanf ( পিটিআর, '%s' , বুফ ) == 1 )
printf ( '%s \n ' , বুফ ) ;
ফিরে 0 ;
}
এই কোডে, fopen() ফাংশন পয়েন্টার ভেরিয়েবল ptr এর অধীনে ফাইল খুলতে ব্যবহৃত হয়। fscanf() ফাংশনটি ফাইলটি পড়তে এবং তারপরে এর বিষয়বস্তু মুদ্রণ করতে ব্যবহৃত হয়।
আউটপুট
পদ্ধতি 2: সি-তে একটি টেক্সট ফাইল পড়ার জন্য fread() ফাংশন ব্যবহার করে
ফাইল থেকে ডেটা পড়া হয় ফ্রেড() পদ্ধতি এবং একটি বাফারে সংরক্ষণ করা হয়। আইটেম গণনা পর্যন্ত একটি অ্যারের বাফার মধ্যে পড়া হয় fread() ইনপুট স্ট্রীম থেকে ফাংশন, যা একটি ফাংশন আর্গুমেন্ট হিসাবে সরবরাহ করা হয়।
আইটেমের মোট সংখ্যা সফলভাবে পড়া হলে, একটি size_t অবজেক্ট ফেরত দেওয়া হয়। যদি এই মানটি প্রোগ্রাম দ্বারা নির্দিষ্ট করা মান থেকে ভিন্ন হয়, হয় একটি ত্রুটি ঘটেছে বা ফাইলের শেষ পর্যন্ত পৌঁছে গেছে।
# অন্তর্ভুক্ত করুনint প্রধান ( )
{
চার বাফার [ 33 ] ;
ফাইল * প্রবাহ
প্রবাহ = fopen ( 'file_name.txt' , 'আর' ) ;
int count = fread ( এবং buffer, sizeof ( চর ) , 33 , প্রবাহ ) ;
fclose ( প্রবাহ ) ;
printf ( 'ফাইল থেকে পড়া ডেটা: %s \n ' , বাফার ) ;
printf ( 'পড়া উপাদানের সংখ্যা: %d' , গণনা ) ;
ফিরে 0 ;
}
এই কোডে, fopen() ফাংশনটি ফাইলটি খুলতে এবং তারপরে ব্যবহার করা হয় fread() ফাংশনটি ফাইলটি পড়তে এবং তারপরে এর বিষয়বস্তু মুদ্রণ করতে ব্যবহৃত হয়। 33 ফাইল থেকে পড়া অক্ষরের সংখ্যা দেখায়।
আউটপুট
পদ্ধতি 3: সি-তে একটি টেক্সট ফাইল পড়ার জন্য fgets() ফাংশন ব্যবহার করে
সঙ্গে fgets() ফাংশন, নির্দিষ্ট স্ট্রিম থেকে একটি লাইন পড়া হয় এবং সংশ্লিষ্ট স্ট্রিং ভেরিয়েবলে সংরক্ষণ করা হয়। যখন (n-1) অক্ষর, নতুন লাইনের অক্ষর, বা ফাইলের শেষটি পড়া হয়, বা যেটি প্রথমে ঘটে, প্রোগ্রামটি শেষ হয়৷ যদি ফাংশনটি সফল হয় তবে একই স্ট্রিংটি ফেরত দেওয়া হয়৷ স্ট্রিং এর বিষয়বস্তু যথাস্থানে রাখা হয় এবং একটি নাল পয়েন্টার দেখা দেয় যদি ফাংশনটি এন্ড-অফ-ফাইলে আঘাত করে কোন অক্ষর পড়া ছাড়াই।
ব্যর্থতার ক্ষেত্রে, এটি একটি নাল পয়েন্টার প্রদান করে।
# অন্তর্ভুক্ত করুনint প্রধান ( ) {
ফাইল * fp;
char str [ 60 ] ;
fp = fopen ( 'file.txt' , 'আর' ) ;
যদি ( fp == শূন্য ) {
ভুল ( 'ফাইল খোলার সময় ত্রুটি' ) ;
ফিরে ( - 1 ) ;
}
যদি ( fgets ( str, 100 , fp ) ! =শূন্য ) {
রাখে ( str ) ;
}
fclose ( fp ) ;
ফিরে ( 0 ) ;
}
এই কোডে, file.txt দ্বারা ফাইল খোলা হয় fopen() ফাংশন এবং তারপর fgets() ফাংশন তারপর ফাইলের স্ট্রিং পড়তে এবং তারপর তাদের প্রিন্ট করতে ব্যবহৃত হয়। 100 এটি পড়া হবে স্ট্রিং সংখ্যা দেখায়.
আউটপুট
পদ্ধতি 4: সি-তে একটি টেক্সট ফাইল পড়ার জন্য fgetc() ফাংশন ব্যবহার করে
দ্য fgtec() ফাংশন একের পর এক অক্ষর পড়তে ব্যবহৃত হয়। ফাংশনটি তখন যে অক্ষরটি পড়েছে তার ASCII কোড প্রদান করে। এটি ফাইল পয়েন্টারের বিবৃত স্থানে উপস্থিত অক্ষরটি ফিরিয়ে দেয়। ফাইল পয়েন্টার তারপর পরবর্তী অক্ষরে চলে যায়। যদি কোনও ত্রুটি থাকে বা পয়েন্টারটি ফাইলের শেষে পৌঁছে যায়, এই ফাংশনটি একটি EOF (ফাইল-এর শেষ) প্রদান করে।
# অন্তর্ভুক্ত করুনint প্রধান ( )
{
ফাইল * fp = fopen ( 'file.txt' , 'আর' ) ;
যদি ( fp == শূন্য )
ফিরে 0 ;
করতে {
char c = fgetc ( fp ) ;
যদি ( feof ( fp ) )
বিরতি ;
printf ( '% গ' , গ ) ;
} যখন ( 1 ) ;
fclose ( fp ) ;
ফিরে ( 0 ) ;
}
দ্য ' file.txt ” ফাইলটি খোলা হয় fopen() পয়েন্টার ভেরিয়েবল fp এর অধীনে এই কোডে ফাংশন। ফাইলের অক্ষরগুলি তারপর ব্যবহার করে পড়া হয় fgetc() পদ্ধতি, যা পড়া অক্ষর মুদ্রণ করে।
আউটপুট
উপসংহার
ফাইল পড়া প্রতিটি কম্পিউটার ব্যবহারকারীর জন্য একটি প্রয়োজনীয়তা, এবং বিশেষ করে একজন বিকাশকারীর জন্য, এটি গুরুত্বপূর্ণ যে তিনি তার কোড ব্যবহার করে ফাইলগুলি অ্যাক্সেস করতে পারেন। তাই 4 টি পদ্ধতি উপরে একটি পড়ার জন্য নিবন্ধে উল্লেখ করা হয়েছে লেখার ফাইল সি ভাষা ব্যবহার করে। fscanf() এবং fread() ফাইলগুলিকে একইভাবে পড়তে ব্যবহৃত হয়, ব্যতিক্রম ছাড়া fread() ব্যবহারকারী পড়তে চায় এমন অক্ষর সংখ্যা উল্লেখ করার অনুমতি দেয় fgets() লাইন দ্বারা একটি ফাইল লাইন পড়তে ব্যবহৃত হয়, এবং fgetc() অক্ষর দ্বারা একটি ফাইল অক্ষর পড়তে ব্যবহৃত হয়।