>> বক্তা: এ পর্যন্ত, এটি করিয়েছে আপনার প্রোগ্রাম অধিকাংশ যে
একটি বিট ক্ষণজীবী হয়েছে.
আপনি মারিও বা অর্থগৃধ্নু মত একটি প্রোগ্র্যাম চালাতে.
এটা হতে পারে অনুরোধ জানানো, কিছু আছে কিছু তথ্য ব্যবহারকারী,
পর্দায় কিছু আউটপুট প্রিন্ট, কিন্তু তারপর আপনার প্রোগ্রাম, ওভার যখন
সেখানে কোনো প্রমাণ সত্যিই আছে এটা কখনও প্রথম স্থানে চালানো হয়.
আমি নিশ্চিত, আপনি ছেড়ে দেওয়া হতে পারে, মানে এটা টার্মিনাল উইন্ডোতে খুলুন
আপনি আপনার পর্দা পরিষ্কার কিন্তু যদি, আছে এটা যে অস্তিত্ব সত্যিই কোন প্রমাণ.
আমরা সংরক্ষণকারী একটি উপায় আছে না ক্রমাগত তথ্য, তথ্য
আমাদের পরে বিদ্যমান প্রোগ্রাম চলমান বন্ধ হয়েছে,
বা আমরা এই বিন্দু পর্যন্ত না আছে.
সৌভাগ্যবশত যদিও, সি আছে ক্ষমতা সঙ্গে আমাদের প্রদান
প্রয়োগ করে এই কাজ করতে কিছু বলা
একটি ফাইল, একটি কাঠামো যে মূলত আপনি দ্বিগুণ হবে যে একটি ফাইল প্রতিনিধিত্ব
যদি আপনি আপনার কম্পিউটারের তে ক্লিক একটি গ্রাফিকাল ইউজার পরিবেশে ব্যবহৃত.
সাধারণত যখন কাজ সি, আমরা আসলে করছি
সঙ্গে কাজ করা যাচ্ছে পয়েন্টার ফাইল files-- করতে stars--
একটি সামান্য বিট ছাড়া আমরা একটি দম্পতি সম্পর্কে কথা বলতে হলে
ফাংশন যে ফাইল পয়েন্টার সঙ্গে কাজ.
আপনি সত্যিই খুঁড়েছে প্রয়োজন হবে না বোঝার পয়েন্টার মধ্যে খুব গভীর
নিজেদের.
একটু পুঁচকে বিট আছে আমরা তাদের সম্পর্কে কথা বলতে হবে যেখানে,
কিন্তু সাধারণত পয়েন্টার এবং দায়ের পয়েন্টার, পারস্পরিক সম্পর্কযুক্ত করার সময়,
ঠিক একই জিনিস নয়.
>> এখন আমি যখন তা মানে না আমি ক্রমাগত তথ্য বলতে?
ক্রমাগত তথ্য কি?
আমরা এটা সম্পর্কে কেন দরকার?
যে, উদাহরণস্বরূপ, বলুন আপনি একটি প্রোগ্রাম চালাচ্ছেন
অথবা আপনি পুনর্লিখিত করেছি একটি একটি খেলা যে প্রোগ্রাম,
এবং আপনি ট্র্যাক রাখতে চান ব্যবহারকারীর প্যাচসমূহ সব
তাই কিছু গোলমাল যে হয়তো যদি, আপনি খেলা পরে ফাইল পর্যালোচনা করতে পারেন.
যে যখন আমরা মানে কি ক্রমাগত তথ্য সম্পর্কে কথা বলতে.
>> চালানোর জন্য অবশ্যই আপনার প্রোগ্রাম, একটি ফাইল তৈরি করা হয়.
এবং যখন আপনার প্রোগ্রাম চলমান বন্ধ হয়েছে,
যে ফাইলটি আপনার সিস্টেমে বিদ্যমান.
আর আমরা এটি তাকান এবং এটি পরীক্ষা করতে পারেন.
আর তাই যে প্রোগ্রাম নির্ধারণ করা হবে কিছু নির্দিষ্ট তথ্য তৈরি করেছেন,
তথ্য প্রোগ্রাম পর অস্তিত্ব চলমান সমাপ্ত হয়েছে.
>> এখন কাজ করে এই কর্ম সব ফাইল তৈরি ও সাধিত সাথে
বিভিন্ন উপায়ে তাদের প্রমিত io.h বাস,
যা একটি হেডার ফাইলটি যে আপনি সম্ভবত পাউন্ড চলেছি
বেশ উপরের সহ আপনার প্রোগ্রাম অনেক সব
এটা এক রয়েছে কারণ আমাদের জন্য সবচেয়ে দরকারী ফাংশন,
এছাড়াও দেয় যে printf, প্রমিত io.h. বসবাস
সুতরাং আপনি অন্তর্ভুক্ত পাউন্ড করার প্রয়োজন হবে না কোন অতিরিক্ত ফাইল সম্ভবত
যাতে ফাইল পয়েন্টার সাথে কাজ করতে.
>> এখন প্রতি একক ফাইল পয়েন্টার ফাংশন, বা প্রতি একক ফাইল ইনপুট / আউটপুট, ইনপুট আউটপুট
ফাংশন, এক হিসাবে গ্রহণ তার পরামিতি বা ইনপুট
ছাড়া একটি ফাইল পয়েন্টার এক, যদি fopen, যা
আপনি ফাইল পেতে ব্যবহার কি প্রথমেই পয়েন্টার.
কিন্তু আপনি খোলা থাকেন পর ফাইল এবং আপনার ফাইল পয়েন্টার পেতে,
তারপর আপনি তাদের পাস করতে পারেন বিভিন্ন ফাংশন আর্গুমেন্ট
আমরা সম্পর্কে কথা বলতে যাচ্ছেন আজ, সেইসাথে অনেক অন্যদের
যাতে আপনি ফাইল সঙ্গে কাজ করতে পারেন.
>> তাই ছয় সুন্দর আছে সাধারণ মৌলিক বেশী
আমরা আজ কথা বলার চলুন যে.
fopen এবং তার সহচর ফাংশন fclose, ঠিক fgetc
এবং তার সহচর ফাংশন fputc, এবং fread এবং তার সহচর ফাংশন,
fwrite.
তাই এর ডান এটা ঢোকা.
>> fopen-- ওটা কী করে?
হ্যাঁ, এটি একটি ফাইল খোলে এবং এটা এটা আপনি একটি ফাইল পয়েন্টার দেয়,
অতএব তোমরা কি ব্যবহার করতে পারেন যে একটি যুক্তি হিসেবে পয়েন্টার দায়ের
অন্যান্য ফাইল ইনপুট / আউটপুট ফাংশন কোন.
সবচেয়ে গুরুত্বপূর্ণ বিষয় যদি fopen সঙ্গে মনে রাখা
আপনি খোলা আছে যে পরে ফাইল বা এখানে এক মত একটি কল করা হয়,
আপনি নিশ্চিত করার জন্য পরীক্ষা করা প্রয়োজন যে আপনি ফিরে পেয়েছিলাম যে পয়েন্টার
নাল সমান নয়.
আপনি ভিডিওতে দেখা না করে থাকেন পয়েন্টার, এই অর্থে দেখা যায় না পারে.
কিন্তু আপনি চেষ্টা এবং ডি-রেফারেন্স যদি একটি নাল পয়েন্টার রিকল,
আপনার প্রোগ্রাম সম্ভবত ক্ষতিগ্রস্ত হবে একটি সেগমেন্টেশন [শ্রবণাতীত].
আমরা নিশ্চিত করতে চাই আমরা একটি বৈধ পয়েন্টার ফিরে পেয়েছিলাম.
সময় গরিষ্ঠাংশ আমরা আছি ফিরে একটি বৈধ পয়েন্টার অর্জিত
এবং এটা একটা সমস্যা হবে না.
>> সুতরাং কিভাবে আমরা এটাকে fopen করে দেই?
এটা এই যুদ্ধই বটে.
একটি জেনেরিক হচ্ছে PTR ptr-- ফাইল তারকা পয়েন্টার যদি fopen ফাইলের জন্য নাম
এবং আমরা দুটি জিনিস একটি ফাইলের নাম পাস এবং একটি অপারেশন আমরা দায়িত্বগ্রহণ করতে চান.
তাই আমরা যে দেখে মনে হচ্ছে একটা কল থাকতে পারে আপাততঃ ফাইল তারকা খুঁজছেন এরকম 1 fopen সমান
file1.txt.
আর আমি মনোনীত করেছি অপারেশন R হয়.
>> তাই কি আপনি এখানে আর মনে হয় না?
যে ধরণের জিনিষ কি আমরা ফাইল করতে সক্ষম হতে পারে?
সুতরাং R অপারেশন যে আমরা আমরা একটি ফাইল পড়তে চান চয়ন.
তাই আমরা মূলত যখন would আমরা এই মত একটি কল করা
নিজেদেরকে একটি ফাইল পয়েন্টার পেয়ে করা আমরা তখন তথ্য পড়তে পারে যে এই ধরনের
file1.txt থেকে.
>> একইভাবে, আমরা ফাইল 2.txt খুলতে পারে ptr2 লেখার জন্য এবং তাই আমরা পাস করতে পারেন,
আমি এখানে তৈরি করেছি ফাইল পয়েন্টার, কোন একটি ফাংশন আর্গুমেন্ট হিসাবে যে
একটি ফাইল থেকে তথ্য লিখেছেন.
আর লেখার অনুরূপ, আছে এছাড়াও বিকল্প একটি, লিখবেন.
দুইটার মধ্যে পার্থক্য লেখা এবং সংযোজন
হচ্ছে আপনি একটি ফাইলে লিখতে হলে যে, আপনি লেখার জন্য fopen একটি কল করতে হলে
এবং যে ফাইল আগে থেকেই এটি বিদ্যমান, সম্পূর্ণ ফাইল মুছে ফেলা যাচ্ছে.
এটা শুরু করতে যাচ্ছে একদম প্রারম্ভকালে,
সব তথ্য মুছে ফেলার যে ইতিমধ্যেই আছে.
>> আপনি সংযোজন জন্য এটি খোলার হইলে সরকারী, এটি ফাইলের শেষে যেতে হবে
ইতিমধ্যে এ টেক্সট আছে কিনা এটা বা এটা তথ্য,
এবং তারপর শুরু হবে সেখান থেকে লেখা.
সুতরাং তোমাদের মধ্যে যে নষ্ট হবে না আপনি আগে কাজ করেছি তথ্য.
আপনি লিখুন বা সংযুক্ত করতে চান কিনা সাজান পরিস্থিতির উপর নির্ভর করে.
কিন্তু আপনি সম্ভবত তা জানতে পারবেন সময় আসে যখন অপারেশন হয়.
সুতরাং যে যদি fopen এর.
>> কি fclose সম্পর্কে?
পাশাপাশি, কাছাকাছি কেবল, fclose শুধু ফাইল পয়েন্টার গ্রহণ করে.
আর আপনি আশা করতে পারে, এটা যে ফাইলটি বন্ধ হয়ে যায়.
আমরা একটি ফাইল বন্ধ করেছি এবং একবার, আমরা না করতে পারেন , কোন ফাইল ইনপুট / আউটপুট ফাংশন সঞ্চালন
পড়া বা সেই ফাইলে লেখা.
আমরা পুনরায় খোলা আছে যাতে অন্য সময় ফাইল
সাথে কাজ চালিয়ে যেতে এটা আমি / হে ফাংশন ব্যবহার.
আমরা কাজ করছি তাই fclose মানে এই ফাইল সঙ্গে কাজ.
আর আমরা পাস করতে হবে একটি ফাইল পয়েন্টার এর নাম.
দুয়েক আগে স্লাইড সুতরাং, আমরা পড়ার জন্য fopened ফাইল 1 ডট টেক্সট
এবং আমরা যে বরাদ্দ ptr1 পয়েন্টার ফাইল.
এখন আমরা করছি সিদ্ধান্ত নিয়েছে করেছি যে ফাইল থেকে পড়া শেষ.
আমরা এটা নিয়ে কোনো কাজ করতে হবে না.
আমরা শুধু fclose ptr1 পারেন.
আর একইভাবে, আমরা পারা অন্যান্য বেশী fclose.
ঠিক আছে.
সুতরাং যে খোলা এবং বন্ধ করা হয়.
ঐ দুটি মৌলিক হয় অপারেশন শুরু.
>> এখন আমরা আসলে চান কিছু মজার জিনিস না,
এবং প্রথম ফাংশন যে আমরা করব যে fgetc-- যে কি করব দেখতে
একটি অক্ষর পেতে দায়ের.
যে সাধারণত fgetc কি অনুবাদ হবে.
জীবন তার লক্ষ্য হয় পরবর্তী অক্ষর পড়তে,
বা এই আপনার খুব হয় তাহলে ঠিক fgetc প্রথম কল
একটি নির্দিষ্ট ফাইলের জন্য, প্রথম অক্ষর.
কিন্তু তারপরে, আপনি, পরের এক পেতে
যে ফাইল খুব পরবর্তী চরিত্র, একটি অক্ষর পরিবর্তনশীল এবং দোকান এটি.
আমরা এখানে কাজ করেছি, গৃহস্থালি CH, ঠিক fgetc সমান
একটি ফাইল পয়েন্টার নামে পাস.
আবার, এটি খুব মনে রাখবেন এখানে গুরুত্বপূর্ণ
যাতে আছে যে এই অপারেশন সফল,
ফাইল পয়েন্টার নিজেই পুরো শরীরটাই পড়ার জন্য খোলা হয়েছে.
আমরা একটি ফাইল থেকে একটি অক্ষর পড়তে পারে না আমরা লেখার জন্য খোলা পয়েন্টার.
সুতরাং যে এক যদি fopen সীমাবদ্ধতার, ডান?
আমরা সীমাবদ্ধ আছে নিজেদেরকে শুধুমাত্র সম্পাদন করতে
একটি ফাইল পয়েন্টার দিয়ে এক অপারেশন.
আমরা পড়তে চেয়েছিলেন এবং একই ফাইল থেকে লিখুন,
আমরা খোলা দুটি পৃথক হবে একই ফাইলের জন্য ফাইল পয়েন্টার
পড়ার জন্য এক, লেখার জন্য এক.
>> তাই আবার, একমাত্র কারণ আমি এখন যে উদ্গীরণ
আমরা একটি কল করতে যাচ্ছেন, কারণ ঠিক fgetc করতে, যে ফাইল পয়েন্টার দেখেছ
পড়ার জন্য খোলা হয়েছে.
এবং তারপর বেশ সহজভাবে, সমস্ত আমরা যা করতে হবে
ফাইল পয়েন্টার নামে পাস হয়.
তাই গৃহস্থালি CH fgetc ptr1 সমান.
>> যে আমাদের পেতে যাচ্ছে পরের চরিত্র
অথবা আবার এই প্রথম, যদি আমরা এই কল করেছি সময়,
প্রথম চরিত্র যাই হোক না কেন ফাইল ptr1 দ্বারা জোরাল হয়.
যে ফাইল 1 ডট টেক্সট যে প্রত্যাহার করা.
এটা যে প্রথম অক্ষর পাবেন এবং আমরা পরিবর্তনশীল CH মধ্যে এটি সংরক্ষণ করব.
অনেকটাই অকপট.
সুতরাং আমরা মাত্র তিন দিকে তাকিয়ে থাকেন ফাংশন এবং আমরা ইতিমধ্যে
বেশ ঝরঝরে কিছু করতে পারেন.
>> আমরা এই ক্ষমতা নিতে হলে তাই একটি অক্ষর পাবার
এবং আমরা লুপ তাই এটিকে আমরা অক্ষর পেতে অবিরত
একটি ফাইল থেকে বেশি এবং ওভার এবং over-- এখন আমরা
প্রতি একক পড়তে পারেন একটি ফাইলের অক্ষর.
আর আমরা প্রত্যেক অক্ষর মুদ্রণ আমরা এটা পড়তে অবিলম্বে পরে,
আমরা এখন একটি ফাইল থেকে পড়া আছে এবং পর্দায় তার বিষয়বস্তু মুদ্রিত.
আমরা কার্যকরভাবে ঘনিভূত করেছি পর্দায় যে ফাইল.
এবং যে কি লিনাক্স কমান্ড বিড়াল আছে.
>> আপনি ফাইলের নামের মধ্যে বিড়াল টাইপ করুন, এটি সমগ্র বিষয়বস্তু প্রিন্ট আউট হবে
আপনার টার্মিনাল উইন্ডোতে ফাইলের.
তাই এখানে এই সামান্য লুপ, কোড মাত্র তিন লাইন,
কিন্তু এটা কার্যকরভাবে সদৃশ লিনাক্স কমান্ড বিড়াল.
সুতরাং এই সিনট্যাক্স পারে , একটু অদ্ভুত চেহারা
কিন্তু এখানে কি ঘটছে.
CH fgetc কাজ সমান হলেও, কাজ খুঁজছেন এরকম নয় এটি একটি সম্পূর্ণ গ্রাস EOF-- সমান,
কিন্তু এর এটা শুধু ভেঙ্গে দিন তাই এটা সিনট্যাক্স উপর স্পষ্ট.
আমি এটা সংকুচিত করেছি স্থান অনুরোধে জন্য,
এটি একটি সামান্য, যদিও সিনট্যাক্স চতুর.
>> তাই সবুজ ডানদিকে এই অংশ এখন, এটা কি করছে?
ওয়েল, যে শুধু আমাদের ঠিক fgetc কল, তাই না?
আমরা আগে যে দেখা করেছি.
এটা এক প্রাপ্তির হচ্ছে ফাইল থেকে চরিত্র.
তারপর আমরা যে তুলনা ফাইলের শেষে বিরুদ্ধে চরিত্র.
ফাইলের শেষে যে একটি বিশেষ মান প্রমিত io.h, সংজ্ঞায়িত যা
ফাইলটি অক্ষর শেষ হয়.
তাই মূলত ঘটতে যাচ্ছে কি এই লুপ একটি অক্ষর পড়তে হবে,
, ফাইলের শেষে এটি তুলনা ফাইলটি অক্ষর শেষ.
তারা যদি না মেলে না, তাই আমরা না আছে ফাইলের শেষে পৌঁছেছেন
আমরা যে চরিত্র প্রিন্ট আউট করব.
তারপর আমরা ফিরে যাবেন আবার লুপ শুরুতে.
আমরা একটি চরিত্র পাবেন, পরীক্ষা ফাইলের শেষে বিরুদ্ধে, তাই এটি প্রিন্ট আউট, এবং
এবং তাই এবং তাই, যে ভাবে মাধ্যমে looping
আমরা ফাইলের শেষে পৌঁছেছেন পর্যন্ত.
এবং তারপর যে বিন্দু দ্বারা, আমরা মুদ্রিত হবে
ফাইলের বিষয়বস্তু খুঁজে.
তাই আবার, আমরা শুধুমাত্র দেখা করেছি যদি fopen, fclose, এবং ঠিক fgetc
এবং ইতিমধ্যে আমরা নকল করতে পারবে না লিনাক্স টার্মিনাল কমান্ড.
>> আমি শুরুতে বলেছি, আমরা ঠিক fgetc এবং fputc ছিল,
এবং fputc সহচর ছিল ঠিক fgetc ফাংশন.
আর তাই, হিসাবে আপনি, কল্পনা করতে পারে এটা লেখার সমতুল্য.
এটা আমাদের একটি লিখতে পারবেন একটি ফাইলে একক চরিত্র.
>> আবার, সতর্কীকরণ হচ্ছে, শুধু এটা ঠিক fgetc সঙ্গে ছিল মত, ফাইল
আমরা পুরো শরীরটাই করতে লেখার যে হয়েছে লেখার জন্য বা সংযোজন জন্য খোলা.
আমরা চেষ্টা এবং একটি ফাইল-এ fputc ব্যবহার করা হলে আমরা পড়ার জন্য খোলা থাকেন যে,
আমাদেরকে অবশই স্বাদ আস্বাদন করতে যাচ্ছেন ভুল একটি বিট.
কিন্তু কল বেশ সহজ.
fputc মূলধন ptr2, সব যে কাজ করতে যাচ্ছে এটা হল
চিঠি লিখতে যাচ্ছেন একটি ফাইলে 2 ডট মধ্যে
এর নাম ছিল, যা টেক্সট, আমরা খোলা এবং নির্ধারিত যে ফাইল
পয়েন্টার ptr2 করতে.
সুতরাং আমরা একটি লিখতে যাচ্ছেন রাজধানীর একটি 2 ডট টেক্সট ফাইলে.
আর আমরা কোন বিস্ময়বোধক লিখুন করব 3 ডট ফাইল নির্দেশ
ptr3 দ্বারা জোরাল হয়, যা টেক্সট,.
তাই আবার, এখানে বেশ সহজবোধ্য.
>> কিন্তু এখন আমরা আরেকটি বিষয় নির্বাচন করতে পারবেন.
এই উদাহরণ আছে আমরা শুধু ওভার চালু ছিল
বিড়াল প্রতিলিপি নির্মাণ করতে সক্ষম হচ্ছে সম্পর্কে লিনাক্স কমান্ড, কপি করে প্রিন্ট আউট যে এক
পর্দায়.
ওয়েল, এখন আমরা ক্ষমতা আছে ফাইল থেকে অক্ষর পড়তে
এবং, ফাইল অক্ষর লিখুন কেন আমরা শুধু যে-বদল করো না
fputc একটি কল সঙ্গে printf থেকে কল.
>> আর এখন আমরা CP সদৃশ থাকেন, একটি খুব মৌলিক লিনাক্স কমান্ড
আমরা পথ দীর্ঘ সম্পর্কে বললাম যে আগে লিনাক্সে ভিডিও কমান্ড.
আমরা কার্যকরভাবে করেছি এখানে ডান যে সদৃশ.
আমরা একটি অক্ষর পড়ি এবং তারপর আমরা আছেন অন্য ফাইলে যে অক্ষর লেখা.
একটি ফাইল থেকে পড়া, লেখা বহুবার অন্য,
এবং উপর আবার আমরা ফাইলের শেষে আঘাত না হওয়া পর্যন্ত.
আমরা শেষে পেয়েছেন ফাইল আমরা থেকে কপি করার চেষ্টা করছি.
এবং যে আমরা সব লেখা আছে করব অক্ষরের আমরা ফাইল প্রয়োজন
আমরা আপনাকে লিখছি যে.
সুতরাং এই সিপি, লিনাক্স কপি কমান্ড.
>> খুব প্রারম্ভে এই ভিডিওটি আমি সতর্কীকরণ ছিল
আমরা একটি কথা বলতে চাই যে পয়েন্টার সম্পর্কে অল্প.
আমরা যেখানে এখানে বিশেষভাবে হয় পয়েন্টার সম্পর্কে কথা বলতে যাচ্ছি
উপরন্তু পয়েন্টার ফাইলে.
সুতরাং এই ফাংশন ধরনের ভীতিকর দেখায়.
এটা বিভিন্ন পরামিতি পেয়েছিলাম.
এখানে যাওয়া অনেক আছে.
বিভিন্ন অনেক আছে রং এবং গ্রন্থে.
কিন্তু সত্যিই, এটা ঠিক ঠিক fgetc জেনেরিক সংস্করণ
যে আমাদের কোনো পেতে পারবেন তথ্যের পরিমাণ.
এটা আমরা করছি একটি বিট অদক্ষ হতে পারে একটি সময়ে অক্ষর এক পেয়ে,
ফাইলের মাধ্যমে iterating একটি সময়ে এক চরিত্র.
এটি পেতে nicer হবে না একটি সময়ে একটি সময় বা 500 এ 100?
>> ওয়েল, fread এবং তার সহচর ফাংশন fwrite, আমরা যা সম্পর্কে আলোচনা করব
একটি দ্বিতীয় মধ্যে, আমাদের ঠিক করতে অনুমতি দেয়.
আমরা একটি অবাধ পরিমাণ পড়তে পারেন একটি ফাইল থেকে তথ্য
এবং আমরা কোথাও সাময়িকভাবে সংরক্ষণ.
পরিবর্তে শুধুমাত্র করতে সক্ষম হচ্ছে একটি একক ভেরিয়েবলের মধ্যে এটি মাপসই করা হবে,
আমরা একটি অ্যারের মধ্যে এটি সংরক্ষণ করতে হবে পারে.
আর তাই, আমরা চার পাস আর্গুমেন্ট একটি পয়েন্টার fread-- করতে
আমরা যেখানে অবস্থান তথ্য সংরক্ষণ করে যাচ্ছে,
কিভাবে তথ্য প্রতিটি ইউনিট বড় হতে হবে, তথ্য কত ইউনিট
আমরা অর্জন করতে চান, এবং থেকে যা ফাইল আমরা তাদের পেতে চান.
সম্ভবত সেরা সচিত্র এখানে একটি উদাহরণ দিয়ে.
সুতরাং আসুন আমরা ঘোষণা যে বলা যাক 10 পূর্ণসংখ্যার একটি অ্যারে.
আমরা শুধু ঘোষণা করেছি ইচ্ছামত গাদা তীর 10 int.
সুতরাং যে বেশ সহজবোধ্য.
এখন কি আমরা যদিও করছেন হয় frecall আমরা int মাপ পড়ি হয়
বার তথ্য 10 বাইট.
কোন int হচ্ছে আকার যে four-- সি একটি পূর্ণসংখ্যা মাপ.
>> তাই কি আমরা করছেন আমরা পড়ি হয় তথ্য মূল্য 40 বাইট
ফাইল থেকে কাজ খুঁজছেন এরকম দ্বারা জোরাল.
এবং আমরা যারা সংরক্ষণ করছেন 40 বাইট কোথাও
আমরা সেট একপাশে আছে যেখানে মেমরির মূল্য 40 বাইট.
সৌভাগ্যবশত, আমরা ইতিমধ্যে দ্বারা যে কাজ করেছি যে অ্যারে অধিকার আছে, তীর ঘোষণা.
যে ধারণ করতে সক্ষম হয় 10 চার বাইট ইউনিট.
মোট সুতরাং, এটা 40 ধরে রাখতে পারেন বাইট তথ্য মূল্য.
আর আমরা এখন 40 বাইট পড়া হয় ফাইল থেকে তথ্য,
এবং আমরা আপনার কীবোর্ড মধ্যে এটি সংরক্ষণ করছেন.
>> পয়েন্টার ভিডিও থেকে প্রত্যাহার করা যে যেমন আপনার কীবোর্ড হিসাবে একটি অ্যারের, নাম,
সত্যিই শুধু একটি পয়েন্টার তার প্রথম উপাদান.
তাই আমরা সেখানে তীরচিহ্ন মধ্যে পাশ করতে হলে, আমরা একটি পয়েন্টার ক্ষণস্থায়ী, আসলে, হয়.
>> একইভাবে আমরা আপাততঃ করতে পারেন আমরা অগত্যা না
স্ট্যাক আমাদের বাফার সংরক্ষণ করা প্রয়োজন.
আমরা পরিবর্তনশীল বরাদ্দ পারে একটি malloc ব্যবহার, ভালো বাফার.
যখন আমরা, মনে রেখো পরিবর্তনশীল মেমরি বরাদ্দ,
আমরা উপর এটি সংরক্ষণ করছি গাদা না স্ট্যাক.
কিন্তু এটি এখনও একটি বাফার.
>> এটা এখনও এই ক্ষেত্রে, হয় তথ্য 640 বাইট ধারণ
একটি ডবল আট বাইট পর্যন্ত সময় লাগে, কারণ.
আর আমরা তাদের 80 জন্য বলছি.
আমরা স্থান আছে চান 80 দ্বিগুণ রাখা.
তাই 80 বার 8 640 বাইট তথ্য.
আর fread যে কল তথ্য 640 বাইট সংগ্রহ
ফাইল থেকে দ্বারা জোরাল PTR এবং arr2 এখন এটি সংরক্ষণ.
>> এখন আমরা উদাহরণ fread বিবেচনা করতে পারেন শুধু ঠিক fgetc একটি কলের মত.
এই ক্ষেত্রে, আমরা শুধু চেষ্টা করছেন ফাইল থেকে একটি অক্ষর পেতে.
আর আমরা একটি প্রয়োজন হবে না অ্যারের একটি অক্ষর রাখা.
আমরা শুধু এটা সংরক্ষণ করতে পারেন একটি অক্ষর পরিবর্তনশীল.
>> ক্যাচ, যদিও, যে হয় আমরা শুধু একটি পরিবর্তনশীল আছে,
আমরা পাস করতে হবে যে পরিবর্তনশীল এর ঠিকানা
রিকল যে কারণ fread প্রথম যুক্তি
পাঁচ এবং মেমরি একটি পয়েন্টার আমরা তথ্য সংরক্ষণ করতে চান যেখানে.
আবার, একটি নাম অ্যারের একটি পয়েন্টার.
সুতরাং আমরা এম্পারসেন্ড অ্যারের করতে হবে না.
কিন্তু সি, চরিত্র গ এখানে, একটি অ্যারের নয়.
এটি শুধু একটি পরিবর্তনশীল.
আর তাই আমরা একটি পাস করতে হবে এম্পারসেন্ড সি ইঙ্গিত
যে আমরা চাই যেখানে অঙ্ক যে তথ্য এই এক বাইট ধারণ করার,
এই এক চরিত্র যে আমরা খুঁজছেন এরকম থেকে সংগ্রহ করছেন.
আমি মধ্য দিয়ে যেতে হবে Fwrite-- এই একটু বেশি
quickly-- প্রায় কাছাকাছি fread সঠিক সমতুল্য
এটা লেখার জন্য ছাড়া পরিবর্তে পড়ার, শুধু
other-- মত আমরা খোলা ছিল করেছি এবং বন্ধ, একটি চরিত্র পেতে,
একটি অক্ষর লিখুন.
এখন এটা অবাধ পেতে এর তথ্য পরিমাণ,
তথ্য অধিকার অবাধ পরিমাণ.
তাই ঠিক আগের মতই, আমরা যা করতে পারেন 10 পূর্ণসংখ্যার একটি অ্যারে আছে
যেখানে আমরা আগে থেকেই আছে তথ্য সম্ভবত, সংরক্ষিত.
>> এটা সম্ভবত কিছু কোড লাইন ছিল যে এই দুই এর মধ্যে যেতে হবে
আমি সঙ্গে arr পূরণ যেখানে অর্থপূর্ণ কিছু.
আমি 10 বিভিন্ন পূর্ণসংখ্যার দিয়ে ফিল করুন.
এবং পরিবর্তে, আমি কি করছি করছেন তীর থেকে লেখা হয়
এবং তীর থেকে তথ্য সংগ্রহ করা.
আর আমি যে তথ্য গ্রহণ করছি এবং ফাইলের মধ্যে এটি নির্বাণ.
>> সুতরাং পরিবর্তে তা থেকে হচ্ছে বাফার ফাইল,
আমরা এখন থেকে যাচ্ছেন ফাইলে বাফার.
তাই এটা শুধু বিপরীত.
ঠিক আগের মতই তাই আবার, আমরা যা করতে পারেন স্মরণশক্তির এক গাদা খণ্ড আছে
আমরা পরিবর্তনশীল করেছি যে বরাদ্দ এবং যে থেকে পড়তে
এবং ফাইলে যে লিখতে.
>> এবং আমরা একটি একক পরিবর্তনশীল আছে এক বাইট ধারণ করতে সক্ষম
যেমন একটি চরিত্র হিসাবে তথ্য,.
কিন্তু আবার, আমরা পাস করতে হবে যে পরিবর্তনশীল এর ঠিকানা
আমরা তা থেকে পড়তে চান.
সুতরাং আমরা তথ্য লিখে রাখতে পারেন আমরা যে ঠিকানায় খুঁজে
ফাইল পয়েন্টার, PTR.
>> অন্যান্য প্রচুর আছে মহান ফাইল ইনপুট / আউটপুট ফাংশন
এ ছাড়া বিভিন্ন ধরনের জিনিস বেশী আমরা আজ স্বপ্ন করেছি.
বেশী কয়েক আপনার কাজে লাগতে পারে
fgets এবং fputs হয়, যা হয় সমতুল্য
ঠিক fgetc এবং fputc কিন্তু পড়ার জন্য একটি ফাইল থেকে একটি একক পংক্তি.
পরিবর্তে একটি একক চরিত্রের, এটি একটি সম্পূর্ণ পংক্তি পড়তে হবে.
মূলত পারবেন যা fprintf, আপনি ফাইলে লিখতে printf ব্যবহার করতে.
আপনি করতে পারেন, তাই ঠিক মত ব্যবহার পরিবর্তনশীল উপকল্পন
স্থানধারক শতাংশ আমি ও printf সঙ্গে শতাংশ D, এবং তাই,
আপনি একইভাবে নিতে পারেন printf, স্ট্রিং এবং কিছু প্রিন্ট
একটি ফাইলে যে মত.
>> fseek-- আপনি একটি ডিভিডি প্লেয়ার আছে আমি সাধারণত এখানে ব্যবহার উপমা
সাজানোর ব্যবহার করে ভালো হয় আপনার গুটিয়ে এবং দ্রুত এগিয়ে
বোতাম ছবিটির প্রায় সরাতে.
একইভাবে, আপনি ফাইল কাছাকাছি স্থানান্তর করতে পারেন.
ভিতরে কিছু এক যে ফাইল গঠন
আপনি একটি সূচক জন্য যে সি সৃষ্টি যেখানে আপনি ফাইল আছে.
আপনি খুব এ আছেন বাইট শূন্য এ, প্রারম্ভে?
আপনি বাইট 100 এ আছে, বাইট 1,000, এবং তাই?
আপনি ইচ্ছামত সরাতে fseek ব্যবহার করতে পারেন এগিয়ে অথবা পিছিয়ে যে নির্দেশক.
>> এবং আবার, ftell একটি ডিভিডি প্লেয়ার অনুরূপ,
বলে যে একটি সামান্য ঘড়ি ভালো হয় আপনি কত মিনিট এবং সেকেন্ডের আপনি
একটি নির্দিষ্ট সিনেমা মধ্যে হয়.
একইভাবে, ftell আপনি কিভাবে বলে অনেক বাইট আপনি ফাইলে আছে.
feof একটি ভিন্ন সংস্করণ আপনাকে করেছি কিনা সনাক্ত
ফাইলের শেষে পৌঁছে.
আর ferror একটি ফাংশন আপনি ব্যবহার করতে পারেন যে
কিছু আছে কিনা তা বের করা একটি ফাইলের সাথে ভুল কাজ চলে.
আবার, এই মাত্র হল প্রারম্ভিক.
প্রচুর আরো ফাইল ইনপুট / আউটপুট এখনও নেই প্রমিত io.h. ইন ফাংশান
কিন্তু সম্ভবত এই আপনি পাবেন ফাইল পয়েন্টার দিয়ে কাজ শুরু করে.
আমি ডগ লয়েড আছি.
এই CS50.