1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [ফাইল ইনপুট / আউটপুট] 2 00:00:02,000 --> 00:00:04,000 [জেসন Hirschhorn, হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:04,000 --> 00:00:07,000 [এটি CS50, CS50.TV] 4 00:00:07,000 --> 00:00:11,000 যখন আমরা একটি ফাইল মনে, কি আসে মনে হয় একটি মাইক্রোসফট ওয়ার্ড ফাইলটি, 5 00:00:11,000 --> 00:00:14,000 একটি JPEG চিত্র, বা একটি MP3 গান, 6 00:00:14,000 --> 00:00:17,000 এবং আমরা ভিন্ন উপায়ে ফাইল এই ধরনের প্রতিটি সাথে ইন্টারেক্ট. 7 00:00:17,000 --> 00:00:20,000 একটি শব্দ নথিতে উদাহরণস্বরূপ, আমরা টেক্সট যোগ করুন 8 00:00:20,000 --> 00:00:24,000 যখন একটি JPEG চিত্র সঙ্গে আমরা প্রান্ত আউট ক্রপ বা রং পরিমার্জন করা হতে পারে. 9 00:00:24,000 --> 00:00:28,000 এখনো আমাদের কম্পিউটারের মধ্যে উপস্থিত ফাইলের সমস্ত ফণা অধীন হয় না আরো 10 00:00:28,000 --> 00:00:31,000 তুলনায় একটি zeros এবং বেশী দীর্ঘ ক্রম. 11 00:00:31,000 --> 00:00:33,000 এটা নির্দিষ্ট আবেদন ফাইল সাথে মিথস্ক্রিয়া উপর 12 00:00:33,000 --> 00:00:38,000 সিদ্ধান্ত নিতে যে কিভাবে এই দীর্ঘ ক্রম প্রক্রিয়া ব্যবহারকারী যাও এটি উপস্থাপন. 13 00:00:38,000 --> 00:00:41,000 এক হাত, এক বাইট কেবল একটি নথি তাকান হতে পারে, 14 00:00:41,000 --> 00:00:45,000 বা 8 zeros এবং বেশী, এবং একটি পর্দায় ASCII অক্ষর প্রদর্শন. 15 00:00:45,000 --> 00:00:48,000 অন্য দিকে, একটি বিটম্যাপ ইমেজ 3 বাইট তাকান হতে পারে, 16 00:00:48,000 --> 00:00:50,000 বা 24 zeros এবং বেশী, 17 00:00:50,000 --> 00:00:53,000 এবং 3 হেক্সাডেসিমেল সংখ্যা হিসাবে তাদের ব্যাখ্যা 18 00:00:53,000 --> 00:00:56,000 যে লাল, সবুজ, নীল এবং মান প্রতিনিধিত্ব 19 00:00:56,000 --> 00:00:58,000 একটি ইমেজ এক পিক্সেল. 20 00:00:58,000 --> 00:01:01,000 যাই হোক না কেন তারা মত আপনার পর্দায় তাদের মূল তাকান, হতে পারে, 21 00:01:01,000 --> 00:01:05,000 ফাইলগুলি কিছুই zeros এবং বেশী একটা ক্রম বেশী. 22 00:01:05,000 --> 00:01:08,000 সুতরাং let এর আকর্ষণীয় এবং কিভাবে আসলে আমরা এই zeros এবং বেশী নিপূণভাবে তাকান 23 00:01:08,000 --> 00:01:12,000 যখন এটি লেখার এবং একটি ফাইল থেকে পড়া আসে. 24 00:01:12,000 --> 00:01:15,000 >> আমি ভঙ্গ একটি সহজ 3 ভাগে বিভক্ত প্রক্রিয়ার মধ্যে এটি ডাউন করে শুরু করব. 25 00:01:15,000 --> 00:01:19,000 এর পরে, আমি দুই কোড উদাহরণ যে এই তিনটি অংশ প্রকট মধ্যে আকর্ষণীয় হবে. 26 00:01:19,000 --> 00:01:23,000 অবশেষে, আমি প্রক্রিয়া পর্যালোচনা এবং তার সবচেয়ে গুরুত্বপূর্ণ বিবরণ কিছু করব. 27 00:01:23,000 --> 00:01:25,000 যেকোন ফাইলটি আপনার ডেস্কটপে যে অস্ত যায়, 28 00:01:25,000 --> 00:01:28,000 সর্বপ্রথম যে জিনিসটি করতে এটি খুলতে হয়. 29 00:01:28,000 --> 00:01:31,000 সি ইন আমরা একটি পূর্বনির্ধারিত struct একটি পয়েন্টার প্রকাশক দ্বারা এই করবেন 30 00:01:31,000 --> 00:01:33,000 যে ডিস্কে একটি ফাইল প্রতিনিধিত্ব করে. 31 00:01:33,000 --> 00:01:38,460 এই ফাংশন কল ইন, এছাড়াও আমরা ঠিক কিনা আমরা বা লিখতে ফাইল থেকে পড়তে চাই. 32 00:01:38,460 --> 00:01:41,660 এর পরে, আমরা আসল লেখা এবং পড়ার না. 33 00:01:41,660 --> 00:01:44,800 বিশেষ ফাংশন একটি সংখ্যা আমরা এই অংশে ব্যবহার করতে পারেন, 34 00:01:44,800 --> 00:01:48,790 এবং তাদের প্রায় সব চিঠি ফল, ফাইলের জন্য যা দাঁড়িয়েছে দিয়ে শুরু. 35 00:01:48,790 --> 00:01:53,560 সর্বশেষ, সমগোত্রীয় যাও একটু ফাইল উপরের প্রান্তে লাল রংয়ের X আপনার কম্পিউটারে খুলুন এব, 36 00:01:53,560 --> 00:01:56,680 আমরা একটি চূড়ান্ত ফাংশন কল করে ফাইলটি বন্ধ করুন. 37 00:01:56,680 --> 00:01:59,540 এখন যে আমরা কি আমরা করতে যাচ্ছেন সাধারণ ধারণা আছে, 38 00:01:59,540 --> 00:02:02,000 এর কোড মধ্যে ডুব দেওয়া. 39 00:02:02,000 --> 00:02:06,100 >> এই ডিরেক্টরির মধ্যে, আমরা দুটি সি ফাইল এবং তাদের সংশ্লিষ্ট এক্সিকিউটেবল ফাইল আছে. 40 00:02:06,100 --> 00:02:09,710 মুদ্রলিখ প্রোগ্রাম আর মাত্র একটি কমান্ড লাইন আর্গুমেন্ট লাগে, 41 00:02:09,710 --> 00:02:12,060 ডকুমেন্টের নাম আমরা তৈরি করতে চান. 42 00:02:12,060 --> 00:02:16,160 এই ক্ষেত্রে, আমরা এটি doc.txt ডাকবো. 43 00:02:16,160 --> 00:02:19,080 যাক এর প্রোগ্রাম চালানো এবং কয়েক লাইন লিখুন. 44 00:02:19,080 --> 00:02:23,660 হাই. আমার নাম জেসন. 45 00:02:23,660 --> 00:02:26,710 পরিশেষে, আমরা "প্রস্থান করার জন্য." টাইপ করব 46 00:02:26,710 --> 00:02:29,720 এখন যদি আমরা এই ডিরেক্টরির মধ্যে উপস্থিত ফাইলের তালিকা সব, 47 00:02:29,720 --> 00:02:33,770 আমরা দেখতে যে একটি নতুন ডকুমেন্ট doc.txt নামক বিদ্যমান. 48 00:02:34,190 --> 00:02:36,110 যে ফাইল এই প্রোগ্রামটি শুধুমাত্র তৈরি. 49 00:02:36,110 --> 00:02:40,520 এবং অবশ্যই, খুব এটা কিছুই একটি zeros এবং বেশী দীর্ঘ ক্রম বেশী. 50 00:02:41,100 --> 00:02:43,260 যদি আমরা এই নতুন ফাইল খুলুন, 51 00:02:43,260 --> 00:02:45,870 আমরা কোড 3 লাইন আমরা আমাদের প্রোগ্রামে প্রবেশ করানো দেখুন - 52 00:02:46,060 --> 00:02:49,060 হাই. মে নামটি জেসন. 53 00:02:49,580 --> 00:02:52,090 কিন্তু কি আসলে যখন typewriter.c রান উপর যাচ্ছে? 54 00:02:52,810 --> 00:02:55,520 সুদের প্রথম আমাদের জন্য লাইন লাইন 24. 55 00:02:55,560 --> 00:02:58,490 এই লাইন, আমরা আমাদের ফাইল পয়েন্টার ডিক্লেয়ার. 56 00:02:59,080 --> 00:03:03,140 ফাংশন যে এই পয়েন্টার, fopen ফেরৎ, দুটি আর্গুমেন্ট লাগে. 57 00:03:03,140 --> 00:03:07,440 প্রথম হল ফাইল এক্সটেনশন যদি উপযুক্ত ফাইল নাম সহ. 58 00:03:07,440 --> 00:03:10,980 পুনরাহ্বান যে একটি ফাইল এক্সটেনশন হয় সর্বনিম্ন পর্যায়ে ফাইল প্রভাবিত না. 59 00:03:10,980 --> 00:03:14,640 আমরা একটি zeros এবং বেশী দীর্ঘ ক্রম সঙ্গে সর্বদা কারবারী. 60 00:03:14,640 --> 00:03:19,630 কিন্তু এটি প্রভাব আছে কিভাবে ফাইল এবং ব্যাখ্যা কি অ্যাপ্লিকেশনের জন্য খোলা ব্যবহৃত হয়. 61 00:03:19,630 --> 00:03:22,290 fopen যাও দ্বিতীয় যুক্তি হল একটি একক অক্ষর 62 00:03:22,290 --> 00:03:25,300 কি যে আমরা পরে আমরা ফাইল খোলার জন্য কি পরিকল্পনা ঘোরা. 63 00:03:25,300 --> 00:03:30,630 ওয়াট, আর, এবং এ - এই যুক্তি জন্য তিনটি অপশন আছে 64 00:03:30,630 --> 00:03:34,900 আমরা এই ক্ষেত্রে w নির্বাচিত করেছি, কারণ আমরা ফাইল লিখতে চান. 65 00:03:34,900 --> 00:03:38,820 আর, হিসাবে সম্ভবত আপনি অনুমান করতে পারেন পড়া ফাইলের জন্য. 66 00:03:38,820 --> 00:03:41,760 এবং একটি সংযোজন ফাইলের জন্য হয়. 67 00:03:41,760 --> 00:03:44,960 উভয় w চেপে লেখা এবং একটি ফাইল ব্যবহার করা যেতে পারে, 68 00:03:44,960 --> 00:03:47,460 w ফাইলের শুরুতে থেকে লেখা শুরু হবে 69 00:03:47,460 --> 00:03:50,810 এবং সম্ভাব্য কোন তথ্য যা পূর্বে মুছে ফেলা হয়েছে সঞ্চিত আছে. 70 00:03:50,810 --> 00:03:54,070 ডিফল্টরূপে, আমরা ফাইল খোলার জন্য, যদি এটি ইতিমধ্যে বিদ্যমান নয়, 71 00:03:54,070 --> 00:03:57,180 আমাদের বর্তমান কাজ ডিরেক্টরির মধ্যে নির্মিত হয়. 72 00:03:57,180 --> 00:04:00,540 তবে, যদি আমরা অ্যাক্সেস অথবা একটি ভিন্ন অবস্থান একটি ফাইল তৈরি করতে চান, 73 00:04:00,540 --> 00:04:02,650 মধ্যে fopen প্রথম যুক্তি, 74 00:04:02,650 --> 00:04:05,840 আমরা ফাইলের নাম ছাড়াও একটি ফাইল পাথ উল্লেখ করতে পারেন. 75 00:04:05,840 --> 00:04:09,490 যদিও এই প্রক্রিয়ার প্রথম ভাগে শুধুমাত্র কোড দীর্ঘ একটি লাইন, 76 00:04:09,490 --> 00:04:12,350 এটা সর্বদাই ভাল অনুশীলন লাইনের অন্য সেট অন্তর্ভুক্ত 77 00:04:12,350 --> 00:04:15,930 যে যা সাফল্যের সাথে ফাইল খোলা ছিল অথবা তৈরি নিশ্চিত চেক. 78 00:04:15,930 --> 00:04:20,300 যদি fopen নাল ফেরৎ, আমরা এগিয়ে যাও আমাদের প্রোগ্রামের সাথে কামারশালা চাইবেন না, 79 00:04:20,300 --> 00:04:23,270 এবং যদি এই অপারেটিং সিস্টেম মেমরি 'র বাইরে ঘটতে পারে 80 00:04:23,270 --> 00:04:27,940 অথবা যদি আমরা একটি ডিরেক্টরির জন্য যা আমরা সঠিক অনুমতি উপস্থিত না করে একটি ফাইল খোলার চেষ্টা. 81 00:04:27,940 --> 00:04:31,780 >> প্রক্রিয়ার পার্ট দুই মুদ্রলিখ এর সময় লুপের মধ্যে সঞ্চালিত হয়. 82 00:04:31,780 --> 00:04:35,000 আমরা ব্যবহারকারী থেকে ইনপুট পেতে একটি CS50 লাইব্রেরি ফাংশন ব্যবহার, 83 00:04:35,000 --> 00:04:37,190 এবং গ্রহ তারা প্রোগ্রাম অব্যাহতিপ্রাপ্ত না চান, 84 00:04:37,190 --> 00:04:41,940 আমরা স্ট্রিং নিয়ে এটি ফাইলটি লিখতে fputs ফাংশন ব্যবহার. 85 00:04:41,940 --> 00:04:46,700 fputs অনেক ফাংশন এর মধ্যে শুধুমাত্র একটি ফাইল আমরা লিখতে ব্যবহার করতে পারেন. 86 00:04:46,700 --> 00:04:51,920 অন্যান্য fwrite, fputc, এবং এমনকি fprintf অন্তর্ভুক্ত. 87 00:04:51,920 --> 00:04:54,840 তথাপি নির্দিষ্ট ফাংশন ব্যবহার করে আমরা শেষ পর্যন্ত যদিও,, 88 00:04:54,840 --> 00:04:57,480 তাদের সব প্রয়োজন তাদের যুক্তির মাধ্যমে জানা,, 89 00:04:57,480 --> 00:04:59,670 অন্তত দুটি জিনিস - 90 00:04:59,670 --> 00:05:03,140 করা হবে না এবং যেখানে এটি প্রয়োজন হবে কি করা প্রয়োজন. 91 00:05:03,140 --> 00:05:07,240 আমাদের ক্ষেত্রে, ইনপুট হিসাবে চিহ্নিত পংক্তিটি করা প্রয়োজন যে লিখিত যাও 92 00:05:07,240 --> 00:05:11,290 এবং fp পয়েন্টার হয় যে যেখানে আমরা আমাদের লেখার নির্দেশ দেয়. 93 00:05:11,290 --> 00:05:15,330 এই অনুষ্ঠানে প্রক্রিয়ার অংশ দুটি বরং সহজবোধ্য. 94 00:05:15,330 --> 00:05:17,360 আমরা কেবল করছি ব্যবহারকারী থেকে একটি পংক্তি গ্রহণ 95 00:05:17,360 --> 00:05:22,120 যোগ এবং এটি সরাসরি আমাদের ফাইল সঙ্গে সামান্য-এর কোন ইনপুট বৈধতা বা নিরাপত্তা চেক. 96 00:05:22,120 --> 00:05:26,160 আবার অনেক সময়, দুটি অংশ আপনার কোড বাল্ক আপ নিতে হবে. 97 00:05:26,160 --> 00:05:30,580 অবশেষে, অংশ তিনটি লাইন 58 হয়, যেখানে আমরা ফাইলটি বন্ধ করুন. 98 00:05:30,580 --> 00:05:34,860 এখানে আমরা আমাদের আসল এবং fclose ফাইল পয়েন্টার এটি পাস কল. 99 00:05:34,860 --> 00:05:39,500 পরবর্তী লাইন, আমরা ফিরে শূন্য, আমাদের প্রোগ্রামের সমাপ্তি সূচিত হয়. 100 00:05:39,500 --> 00:05:42,630 এবং, হ্যাঁ, যে তিনটি অংশ হিসাবে হিসাবে সহজ. 101 00:05:42,630 --> 00:05:45,260 >> যাক এর ফাইল থেকে পড়া যেতে. 102 00:05:45,260 --> 00:05:48,220 পিছনে আমাদের ডিরেক্টরির মধ্যে আমরা একটি ফাইল নামক printer.c আছে. 103 00:05:48,220 --> 00:05:50,910 চলুন আমরা শুধুমাত্র ফাইল তৈরি সঙ্গে এটি চালানোর জন্য - 104 00:05:50,910 --> 00:05:53,350 doc.txt. 105 00:05:53,350 --> 00:05:58,150 এই প্রোগ্রাম, নাম হিসাবে সুপারিশ সহজভাবে, প্রিন্ট আউট করা ফাইলের বিষয়বস্তু এটি প্রেরণ. 106 00:05:58,150 --> 00:06:00,230 এবং সেখানে আমরা এটা আছে. 107 00:06:00,230 --> 00:06:03,780 কোড লাইনের পূর্বে টাইপ করা এবং doc.txt সংরক্ষিত ছিল. 108 00:06:03,780 --> 00:06:06,980 হাই. আমার নাম জেসন. 109 00:06:06,980 --> 00:06:09,120 যদি আমরা printer.c মধ্যে ডুব, 110 00:06:09,120 --> 00:06:13,570 আমরা দেখতে যে কোড অনেক অনুরূপ কি আমরা কেবল typewriter.c মাধ্যমে পদচারণা যাও. 111 00:06:13,570 --> 00:06:16,720 প্রকৃতপক্ষে লাইন 22, যেখানে আমরা ফাইল খোলা, 112 00:06:16,720 --> 00:06:19,220 এবং লাইন 39, যেখানে আমরা ফাইলটি বন্ধ, 113 00:06:19,220 --> 00:06:23,890 উভয় typewriter.c প্রায় অভিন্ন fopen দ্বিতীয় যুক্তি জন্য, সংরক্ষণ করুন. 114 00:06:23,890 --> 00:06:26,510 এই সময় আমরা একটি ফাইল থেকে পড়া করছি, 115 00:06:26,510 --> 00:06:29,040 তাই আমরা আর নির্বাচিত পরিবর্তে w থেকে. 116 00:06:29,040 --> 00:06:31,950 সুতরাং, আসুন প্রক্রিয়ার দ্বিতীয় অংশ ফোকাস. 117 00:06:31,950 --> 00:06:36,060 ইন লাইন 35, 4 হিসাবে আমাদের লুপ দ্বিতীয় শর্ত, 118 00:06:36,060 --> 00:06:38,590 আমরা fgets ফোন করতে, 119 00:06:38,590 --> 00:06:42,190 আগে থেকে fputs যাও সহচর ফাংশন. 120 00:06:42,190 --> 00:06:44,660 এই সময় আমরা তিন আর্গুমেন্ট আছে. 121 00:06:44,660 --> 00:06:48,810 প্রথম অক্ষর যেখানে স্ট্রিং সঞ্চিত করা হবে অ্যারের পয়েন্টার. 122 00:06:48,810 --> 00:06:52,670 দ্বিতীয়টি হল সর্বোচ্চ সংখ্যক অক্ষর করা হবে পড়তে. 123 00:06:52,670 --> 00:06:56,010 এবং তৃতীয়টি হল ফাইল সঙ্গে যা আমরা কাজ করছি যাও পয়েন্টার. 124 00:06:56,010 --> 00:07:00,780 আপনি যে লুপ জন্য শেষ হয় যখন fgets ফেরৎ নাল বিজ্ঞপ্তি পাবেন. 125 00:07:00,780 --> 00:07:02,940 দুটি কারণে যে এই ঘটেছে থাকতে পারে সেখানে. 126 00:07:02,940 --> 00:07:05,380 প্রথম, একটি ত্রুটি ঘটেছে থাকতে পারে. 127 00:07:05,380 --> 00:07:10,740 দ্বিতীয়ত, এবং আরো সম্ভবত, ফাইলের শেষে এবং পৌঁছেছেন কোন অক্ষর পড়তে হয়. 128 00:07:10,740 --> 00:07:14,040 ইন কেস আপনি হতাশ করছি, দুটি ফাংশন যে আমাদের জানাতে করার অনুমতি উপস্থিত নয় 129 00:07:14,040 --> 00:07:17,160 যার কারণ হল এই বিশেষ নাল পয়েন্টার জন্য ক্ষতির কারণ হতে পারে. 130 00:07:17,160 --> 00:07:21,090 এবং, আশ্চর্যজনক না, যেহেতু তারা ফাইলগুলির সাথে কাজ করতে থাকে, 131 00:07:21,090 --> 00:07:26,940 উভয় ferror চিঠি চ সঙ্গে ফাংশন এবং feof ফাংশন শুরু. 132 00:07:26,940 --> 00:07:32,130 >> পরিশেষে, আমরা আগে শেষ করা, এক ফাইল ফাংশন শেষে সম্পর্কে দ্রুত নোট, 133 00:07:32,130 --> 00:07:36,690 যা, শুধু হিসাবে উল্লেখ করেছে, feof হিসাবে করা হয়. 134 00:07:36,690 --> 00:07:41,550 প্রায়শই আপনি নিজেকে খুঁজে পেতে ব্যবহার করার জন্য এবং loops যাও কার্যক্রমে ফাইল মাধ্যমে আপনার উপায় পড়তে হবে. 135 00:07:41,550 --> 00:07:45,790 সুতরাং, আপনি এইসব loops শেষ একটি উপায় প্রয়োজন পরে আপনি এই ফাইলের শেষে পৌঁছানোর করব. 136 00:07:45,790 --> 00:07:50,510 আপনার ফাইল পয়েন্টার উপর feof কলিং এবং যদি এটা সত্যি দেখতে পরীক্ষণের 137 00:07:50,510 --> 00:07:52,310 ঠিক যে কি. 138 00:07:52,310 --> 00:07:59,820 সুতরাং, একটি অবস্থা (! Feof (fp)) সঙ্গে যখন একটি লুপ পুরোপুরি উপযুক্ত সমাধান মত মনে হতে পারে. 139 00:07:59,820 --> 00:08:03,770 যাইহোক, বলতে আমরা এক লাইন আমাদের টেক্সট ফাইলের মধ্যে অবশিষ্ট আছে. 140 00:08:03,770 --> 00:08:07,130 আমরা যখন আমাদের লুপ লিখুন এবং সবকিছু আউট হিসাবে পরিকল্পনা কাজ করব না. 141 00:08:07,130 --> 00:08:12,750 পরের বারে মাধ্যমে, আমাদের প্রোগ্রাম যদি fp এর feof সত্য পরীক্ষা হবে, 142 00:08:12,750 --> 00:08:15,430 কিন্তু আছে - এবং এই অত্যন্ত গুরুত্বপূর্ণ পয়েন্ট বুঝতে পারি এখানে - 143 00:08:15,430 --> 00:08:17,770 এটা সত্য হতে পারে না এখনও করবে না. 144 00:08:17,770 --> 00:08:21,110 কারন feof উদ্দেশ্য চেক করা হল না 145 00:08:21,110 --> 00:08:24,400 যদি পড়া একটি ফাংশন কল পরের ফাইলের শেষে আঘাত করা, 146 00:08:24,400 --> 00:08:28,190 বরং কি না তা ইতিমধ্যে ফাইলের শেষে হয়েছে পৌঁছেছেন চেক যাও. 147 00:08:28,190 --> 00:08:30,140 এই উদাহরণে ক্ষেত্রে, 148 00:08:30,140 --> 00:08:32,780 আমাদের ফাইলের শেষ লাইন পড়া যায় পুরোপুরি মসৃণ, 149 00:08:32,780 --> 00:08:36,210 কিন্তু প্রোগ্রাম যা আমরা আমাদের ফাইলের শেষে আঘাত করেছি এখনো জানি না. 150 00:08:36,210 --> 00:08:40,549 এটা পর্যন্ত এটি একটি অতিরিক্ত পঠিত আছে না যে এটি ফাইলের শেষে কাউন্টারে. 151 00:08:40,549 --> 00:08:43,210 সুতরাং, একটি সঠিক শর্ত নিম্নলিখিত হবে: 152 00:08:43,210 --> 00:08:49,330 fgets এবং তার তিনটি আর্গুমেন্ট - আউটপুট, ফলাফল আকার, এবং fp - 153 00:08:49,330 --> 00:08:52,570 সমান না এবং যে সব নাল যাও. 154 00:08:52,570 --> 00:08:55,260 এই পদ্ধতির আমরা printer.c মধ্যে নেন, 155 00:08:55,260 --> 00:08:57,890 এবং এই ক্ষেত্রে, পরে লুপ করে প্রস্থান করে, 156 00:08:57,890 --> 00:09:04,290 আপনি feof বা ferror এই লুপ থেকে প্রস্থান করার জন্য নির্দিষ্ট যুক্তি হিসাবে ব্যবহারকারী যাও অবহিত কল করতে পারেনি. 157 00:09:04,290 --> 00:09:08,100 >> লেখার এবং একটি ফাইল থেকে পড়া একেবারে প্রাথমিক সময়ে হয়,, 158 00:09:08,100 --> 00:09:10,150 একটি সহজ পদ্ধতি 3 ভাগে বিভক্ত. 159 00:09:10,150 --> 00:09:12,530 প্রথমত, আমরা ফাইলটি খুলুন. 160 00:09:12,530 --> 00:09:16,740 দ্বিতীয়ত, আমরা আমাদের ফাইলে কিছু করা বা তা বাইরে কিছু জিনিস নিতে. 161 00:09:16,740 --> 00:09:19,200 তৃতীয়ত, আমরা ফাইলটি বন্ধ করুন. 162 00:09:19,200 --> 00:09:21,170 প্রথম এবং শেষ অংশ সহজে. 163 00:09:21,170 --> 00:09:23,920 মধ্যম ভাগে যেখানে প্রবঞ্চক স্টাফ গুরত্বপূর্ণ. 164 00:09:23,920 --> 00:09:27,760 ফণা নীচে এবং যদিও আমরা সবসময় একটি zeros এবং বেশী দীর্ঘ ক্রম সঙ্গে লেনদেন করছেন, 165 00:09:27,760 --> 00:09:30,710 এটি যখন বিমূর্ততা একটি স্তর যোগ কোডিং না সাহায্য 166 00:09:30,710 --> 00:09:35,350 যে যা আরো ঘনিষ্ঠভাবে বর্ণনার অনুরূপ আমরা যা দেখছি ব্যবহার করতেন মধ্যে ক্রম সক্রিয়. 167 00:09:35,350 --> 00:09:39,570 উদাহরণস্বরূপ, যদি আমরা একটি 24 বিট বিটম্যাপ ফাইলের সাথে কাজ করছি, 168 00:09:39,570 --> 00:09:43,290 আমরা সম্ভবত করা বা পড়া একটি সময়ে তিন বাইট লেখা পাবেন. 169 00:09:43,290 --> 00:09:46,450 যা ক্ষেত্রে, এটা যাও এবং উপযুক্তভাবে সংজ্ঞায়িত অর্থে নামকরণ করা হবে 170 00:09:46,450 --> 00:09:48,980 একটি struct যে 3 বাইট বড়. 171 00:09:48,980 --> 00:09:51,410 >> যদিও ফাইলগুলির সাথে কাজ জটিল মনে হতে পারে, 172 00:09:51,410 --> 00:09:54,530 তাদের ব্যবহার আমাদের কিছু সত্যিই অসাধারণ করার অনুমতি দিয়েছে. 173 00:09:54,530 --> 00:09:58,880 আমরা আমাদের প্রোগ্রাম বাইরে বিশ্বের রাষ্ট্র পরিবর্তন করতে পারেন, 174 00:09:58,880 --> 00:10:01,730 আমরা আমাদের কিছু প্রোগ্রাম জীবনের বাইরে জীবন তৈরি করতে পারেন, 175 00:10:01,730 --> 00:10:07,190 অথবা আমরা এমনকি কিছু করার আগে আমাদের প্রোগ্রাম আরম্ভ চলমান নির্মিত হয়েছিল পরিবর্তন করতে পারেন. 176 00:10:07,190 --> 00:10:11,210 ফাইলের সাথে আলাপচারিতার একটি প্রোগ্রামিং এর সত্যিকারের শক্তিশালী সি অংশ 177 00:10:11,210 --> 00:10:15,300 এবং আমি কি আপনি এটি দিয়ে কোড আসতে ইন তৈরি করতে চাই তা দেখতে অধীর করছি. 178 00:10:15,300 --> 00:10:19,770 আমার নাম জেসন Hirschhorn. এটি CS50. 179 00:10:19,770 --> 00:10:21,770 [CS50.TV] 180 00:10:21,770 --> 00:10:25,940 >> [হাস্য] 181 00:10:25,940 --> 00:10:29,330 ঠিক আছে. এক সময় লাগবে. আমরা শুরু করছি. 182 00:10:49,000 --> 00:10:52,140 যখন আমরা একটি ফাইল মনে - >> ওহ, অপেক্ষা করুন. দুঃখিত. 183 00:10:52,140 --> 00:10:56,800 [হাস্য] ঠিক আছে. 184 00:11:06,620 --> 00:11:09,970 আরে এখানে. 185 00:11:13,670 --> 00:11:16,310 যখন আমরা একটি ফাইল মনে - 186 00:11:17,610 --> 00:11:20,710 যখন আপনি একটি ফাইল মনে - ঠিক আছে. সম্পর্কে আপনি প্রস্তুত হয়ে গেলে বলুন. 187 00:11:20,710 --> 00:11:22,520 ওহ, মহান. 188 00:11:22,520 --> 00:11:26,180 কোন - একটি teleprompter থেকে পড়া যদিও মনে হতে পারে. আমার খারাপ.