2 00:00:00,000 --> 00:00:02,470 >> SPEAKER 1: اجازه دهید به یک برنامه بنویسید که سپس از کاربر برای اسامی و 3 00:00:02,470 --> 00:00:03,990 خانه ها از سه دانشجو. 4 00:00:03,990 --> 00:00:07,300 اما نه تنها از چاپ آنها نام و خانه را به روی صفحه نمایش، اجازه دهید 5 00:00:07,300 --> 00:00:09,660 به جای آن، اطلاعات ذخیره بر روی دیسک. 6 00:00:09,660 --> 00:00:14,530 به عبارت دیگر، اجازه دهید ایجاد، می گویند، CSV فایل، برای مقادیر جدا شده با کاما، 7 00:00:14,530 --> 00:00:17,720 است که در واقع فقط یک فایل متنی است که برنامه ها مانند اکسل و یا شماره 8 00:00:17,720 --> 00:00:21,690 می تواند باز کردن، و به طور موثر صرفه جویی در آن نام ها و خانه ها به طور دائم به طوری که 9 00:00:21,690 --> 00:00:23,220 ما می توانیم آنها را بعد از بررسی. 10 00:00:23,220 --> 00:00:25,960 >> برای این کار، اجازه دهید که نگاهی را برخی از کد boilerplate که من 11 00:00:25,960 --> 00:00:27,650 با در حال حاضر آغاز شده است. 12 00:00:27,650 --> 00:00:32,380 توجه داشته باشید برای اولین بار است که در میان هدر تا بالا در حال حاضر lib.h استاندارد که 13 00:00:32,380 --> 00:00:36,710 اتفاق می افتد به برخی از توابع مربوط به به پرونده I / O، ورودی فایل و خروجی است. 14 00:00:36,710 --> 00:00:39,560 توجه داشته باشید که من هم اعلام کرده ام ثابت نام دانش آموزان - 15 00:00:39,560 --> 00:00:42,380 در همه کلاه - که مقدار است سخت به عنوان سه کدگذاری. 16 00:00:42,380 --> 00:00:45,820 توجه کنید که در حال حاضر در داخل از اصلی من برنامه، من اعلام آرایه ای از 17 00:00:45,820 --> 00:00:50,270 اندازه سه با استفاده از ثابت به نام دانش آموزان هر یک از اعضا که از 18 00:00:50,270 --> 00:00:51,650 دانش آموزان را تایپ کنید. 19 00:00:51,650 --> 00:00:56,150 >> به یاد بیاورید که در حال حاضر یک دانش آموز ما تعریف به عنوان داشتن یک نام و یک خانه هر دو از 20 00:00:56,150 --> 00:01:00,410 که رشته به عنوان در این اعلام دستور، نقطه ساعت. 21 00:01:00,410 --> 00:01:04,680 در حال حاضر در structs1.c توجه کنید که یک حلقه for در اینجا که رفتن به 22 00:01:04,680 --> 00:01:06,750 تکرار از صفر تا سه. 23 00:01:06,750 --> 00:01:10,020 این به من بی درنگ برای یک دانش آموز نام و خانه دانش آموز 24 00:01:10,020 --> 00:01:12,310 دوباره و دوباره و دوباره. 25 00:01:12,310 --> 00:01:15,620 >> سپس در پایین از این برنامه، توجه کنید که من یکی دیگر از حلقه for 26 00:01:15,620 --> 00:01:19,970 که رفتن را به رایگان دانشجویی i ام در نام و خانه دانشجویی i ام در 27 00:01:19,970 --> 00:01:21,570 به طور مشابه حلقه ساخته شده است. 28 00:01:21,570 --> 00:01:24,480 برای اینکه مطمئن شوید، ما می تواند از آن حلقه ترکیب را تنها در یک، اما من می خواستم به 29 00:01:24,480 --> 00:01:28,180 برخی از بخش های متمایز از کد به خاطر بحث در اینجا. 30 00:01:28,180 --> 00:01:31,920 >> در حال حاضر در بین کسانی که برای حلقه، اجازه دهید در واقع دیگری داشته باشد، و این یکی را 31 00:01:31,920 --> 00:01:35,210 هدف در زندگی است که در واقع نجات همه از این نام ها و خانه های که 32 00:01:35,210 --> 00:01:39,810 در حال حاضر در RAM بر روی دیسک به صورت از مقادیر جدا شده با کاما. 33 00:01:39,810 --> 00:01:42,080 برای این کار، ما قصد داریم به استفاده از سه تابع جدید - 34 00:01:42,080 --> 00:01:47,450 F باز، F چون printf و F نزدیک، که باز کردن یک فایل، چاپ به یک فایل، و 35 00:01:47,450 --> 00:01:48,440 بستن یک فایل. 36 00:01:48,440 --> 00:01:49,690 ما می توانیم آنها را به شرح زیر استفاده کنید. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> FILE، در همه کلاه است، که تا حدودی از کنجکاوی در C، FILE fopen می شود 39 00:01:58,240 --> 00:02:03,020 نقل قول نقل قول را تمام کردن و در حال حاضر یک نام برای فایل، می گویند، students.CSV، اما من می توانم 40 00:02:03,020 --> 00:02:08,150 آن را بیشتر از هر چیزی، کاما و در حال حاضر من رفتن به تعیین یک وات در داخل 41 00:02:08,150 --> 00:02:09,390 به نقل از دو برابر شود. 42 00:02:09,390 --> 00:02:13,290 W، همانطور که شما ممکن است حدس زده در حال حاضر، بدان معنی است که fopen باید این فایل را باز 43 00:02:13,290 --> 00:02:17,360 نام Students.CSV برای نوشتن تا که ما در واقع می تواند صرفه جویی 44 00:02:17,360 --> 00:02:19,370 مطالب به آن. 45 00:02:19,370 --> 00:02:23,080 >> چک در کنار بیایید اگر فایل است به تهی برابر نیست. 46 00:02:23,080 --> 00:02:25,860 از آنجا که اگر از آن است، چیزی است که احتمالا خطا رفته اند که در این صورت ما 47 00:02:25,860 --> 00:02:28,340 نباید ادامه دهید سعی کنید به برای چاپ هر چیزی به آن. 48 00:02:28,340 --> 00:02:33,400 اما اگر آن را تهی نیست، پس از آن در داخل از آکولاد من قصد دارم به تکرار 49 00:02:33,400 --> 00:02:38,030 از من برابر با 0 در تا دانش آموزان، و من قصد دارم به 50 00:02:38,030 --> 00:02:40,180 در هر تکرار افزایش من. 51 00:02:40,180 --> 00:02:45,750 و در داخل این حلقه، I رفتن به هستم fprintf، تا که به چاپ را در یک فایل - 52 00:02:45,750 --> 00:02:47,940 به طور خاص از یک من در حال حاضر باز - 53 00:02:47,940 --> 00:02:54,650 یک رشته که به نظر می رسد مثل این از٪ s،٪ s را بک اسلش N اعلان نزدیک است. 54 00:02:54,650 --> 00:02:58,790 >> و در حال حاضر من می خواهم به برق وصل کردن به هر یک از آن دسته از متغیرهایی ارزش واقعی 55 00:02:58,790 --> 00:03:03,390 نام یک دانش آموز و یک خانه با استفاده از عملگر نقطه. 56 00:03:03,390 --> 00:03:10,030 i.name دانش آموزان پایه، دانش آموزان پرانتز i.house براکت نزدیک 57 00:03:10,030 --> 00:03:11,230 نیمه روده بزرگ است. 58 00:03:11,230 --> 00:03:16,180 در حال حاضر در زیر این حلقه، من به سادگی هستم رفتن به fclose از فایل تماس بگیرید به منظور 59 00:03:16,180 --> 00:03:18,520 در نهایت بستن پرونده. 60 00:03:18,520 --> 00:03:21,360 >> حالا وقتی که من این برنامه را اجرا کنید، من باید نیست در واقع هر چیزی را ببینید در 61 00:03:21,360 --> 00:03:25,010 صفحه نمایش، اما من باید پس از در حال اجرا این برنامه یک فایل با نام 62 00:03:25,010 --> 00:03:29,130 Students.CSV در همان دایرکتوری که من فرمان را در آن باید اجرا شود 63 00:03:29,130 --> 00:03:32,480 شامل کاما از هم جدا لیست از ارزش ها. 64 00:03:32,480 --> 00:03:34,790 بیایید نگاهی به. 65 00:03:34,790 --> 00:03:41,690 >> را struct ها 1. / structs1 دانش آموز نام، اجازه دهید بگویم دیوید، 66 00:03:41,690 --> 00:03:43,140 او در ماتر زندگی می کنند. 67 00:03:43,140 --> 00:03:46,890 نام دانش آموز، اجازه دهید بگویم، لورن، او را در Leverett زندگی می کنند. 68 00:03:46,890 --> 00:03:50,800 نام دانش آموز، اجازه دهید بگویم، راب، او به در و Kirkland زندگی می کنند. 69 00:03:50,800 --> 00:03:54,050 در حال حاضر، دوباره، به عنوان انتظار می رود، هیچ چیز به نظر می رسد به اتفاق افتاده است، اما اجازه دهید من 70 00:03:54,050 --> 00:03:58,790 به جلو در خط فرمان و نوع گرم ویرایش students.CSV به این امید که 71 00:03:58,790 --> 00:04:00,850 که فایل در واقع وجود دارد. 72 00:04:00,850 --> 00:04:07,010 >> نرمافزاری gedit students.CSV را وارد کنید، و در واقع، توجه کنید که یک فایل حاوی صرفا 73 00:04:07,010 --> 00:04:11,320 متن، اما متن با کاما جدا شده برای هر رشته، در واقع وجود دارد. 74 00:04:11,320 --> 00:04:14,530 و اگر ما شد، CS50 با استفاده از لوازم خانگی، اما مک بیشتر آشنا یا 75 00:04:14,530 --> 00:04:18,080 PC، معلوم است که ما می تواند در واقع باز کردن این فایل CSV با تر 76 00:04:18,080 --> 00:04:20,400 برنامه آشنا مانند اکسل و یا شماره. 77 00:04:20,400 --> 00:04:22,906