2 00:00:00,000 --> 00:00:02,470 >> SPEAKER 1: Hãy viết một chương trình nhắc nhở người dùng cho tên và 3 00:00:02,470 --> 00:00:03,990 nhà của ba sinh viên. 4 00:00:03,990 --> 00:00:07,300 Nhưng thay vì chỉ in ra của họ tên và nhà ở cho màn hình, chúng ta hãy 5 00:00:07,300 --> 00:00:09,660 thay vì lưu thông tin vào đĩa. 6 00:00:09,660 --> 00:00:14,530 Nói cách khác, chúng ta hãy tạo ra, nói rằng, một CSV tập tin, dấu phẩy tách giá trị, 7 00:00:14,530 --> 00:00:17,720 mà thực sự chỉ là một file văn bản các chương trình như Excel hoặc số 8 00:00:17,720 --> 00:00:21,690 có thể mở và hiệu quả tiết kiệm những tên và nhà vĩnh viễn để 9 00:00:21,690 --> 00:00:23,220 chúng ta có thể xem lại chúng sau này. 10 00:00:23,220 --> 00:00:25,960 >> Để làm như vậy, trước tiên hãy xem qua một số mã nồng nhiệt khi tôi đã 11 00:00:25,960 --> 00:00:27,650 bắt đầu với đã. 12 00:00:27,650 --> 00:00:32,380 Chú ý đầu tiên trong số các tiêu đề lên hàng đầu tại là lib.h tiêu chuẩn mà 13 00:00:32,380 --> 00:00:36,710 xảy ra để có một số chức năng liên quan nộp I / O, tập tin đầu vào và đầu ra. 14 00:00:36,710 --> 00:00:39,560 Chú ý rằng tôi cũng đã tuyên bố một hằng số gọi là HỌC SINH - 15 00:00:39,560 --> 00:00:42,380 trong tất cả các mũ - có giá trị được mã hóa cứng như ba. 16 00:00:42,380 --> 00:00:45,820 Nhận thấy bây giờ bên trong của chính mình chương trình, tôi tuyên bố một loạt các 17 00:00:45,820 --> 00:00:50,270 kích thước ba sử dụng mà không đổi tên SINH VIÊN mỗi thành viên mà là của 18 00:00:50,270 --> 00:00:51,650 loại học sinh. 19 00:00:51,650 --> 00:00:56,150 >> Nhớ lại bây giờ mà một sinh viên chúng tôi sẽ xác định như có một tên và một ngôi nhà cả hai 20 00:00:56,150 --> 00:01:00,410 đó là những chuỗi theo này khai chỉ thị, chấm h. 21 00:01:00,410 --> 00:01:04,680 Bây giờ trở lại trong structs1.c, nhận thấy rằng tôi có một vòng lặp ở đây là sẽ 22 00:01:04,680 --> 00:01:06,750 lặp từ số không đến ba. 23 00:01:06,750 --> 00:01:10,020 Nó sẽ nhắc tôi cho một học sinh tên và nhà của học sinh 24 00:01:10,020 --> 00:01:12,310 một lần nữa và một lần nữa và một lần nữa. 25 00:01:12,310 --> 00:01:15,620 >> Sau đó ở dưới cùng của chương trình này, nhận thấy rằng tôi có một vòng lặp 26 00:01:15,620 --> 00:01:19,970 đó là sẽ giải phóng các sinh viên thứ i của tên và nhà sinh viên thứ i trong một 27 00:01:19,970 --> 00:01:21,570 xây dựng tương tự như vòng lặp. 28 00:01:21,570 --> 00:01:24,480 Để chắc chắn, chúng ta có thể kết hợp những vòng vào chỉ là một, nhưng tôi muốn 29 00:01:24,480 --> 00:01:28,180 có một số phân khúc của mã vì lợi ích của thảo luận ở đây. 30 00:01:28,180 --> 00:01:31,920 >> Bây giờ ở giữa những người cho vòng, chúng ta hãy thực sự có một, và cái này thì 31 00:01:31,920 --> 00:01:35,210 mục đích trong cuộc sống là thực sự tiết kiệm tất cả các tên và ngôi nhà là 32 00:01:35,210 --> 00:01:39,810 hiện đang trong bộ nhớ RAM vào đĩa theo hình thức của dấu phẩy tách giá trị. 33 00:01:39,810 --> 00:01:42,080 Để làm như vậy, chúng ta sẽ sử dụng ba chức năng mới - 34 00:01:42,080 --> 00:01:47,450 F mở, F printf, và F gần, mà mở một tập tin, in một tập tin, và 35 00:01:47,450 --> 00:01:48,440 đóng một tập tin. 36 00:01:48,440 --> 00:01:49,690 Chúng ta có thể sử dụng chúng như sau. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> FILE, trong tất cả các mũ, trong đó có phần của một sự tò mò trong C, FILE được fopen 39 00:01:58,240 --> 00:02:03,020 quote unquote và bây giờ là một tên cho nộp, nói, students.CSV, nhưng tôi có thể 40 00:02:03,020 --> 00:02:08,150 gọi nó là bất cứ điều gì nhất, dấu phẩy và bây giờ tôi sẽ chỉ định một đơn w bên trong 41 00:02:08,150 --> 00:02:09,390 của dấu ngoặc kép. 42 00:02:09,390 --> 00:02:13,290 W, như bạn có thể dự đoán, có nghĩa là fopen nên mở tập tin này 43 00:02:13,290 --> 00:02:17,360 gọi là Students.CSV để viết nên rằng chúng ta thực sự có thể tiết kiệm một số 44 00:02:17,360 --> 00:02:19,370 nội dung cho nó. 45 00:02:19,370 --> 00:02:23,080 >> Chúng ta hãy kiểm tra tiếp theo nếu tập tin không bằng null. 46 00:02:23,080 --> 00:02:25,860 Bởi vì nếu nó là, một cái gì đó có thể đi sai trong trường hợp này chúng tôi 47 00:02:25,860 --> 00:02:28,340 không nên tiếp tục cố gắng in bất cứ điều gì với nó. 48 00:02:28,340 --> 00:02:33,400 Nhưng nếu nó không phải là vô giá trị, sau đó bên trong dấu ngoặc nhọn tôi sẽ lặp 49 00:02:33,400 --> 00:02:38,030 từ tôi bằng 0 trên lên đến SINH VIÊN, và tôi sẽ 50 00:02:38,030 --> 00:02:40,180 tăng i trên mỗi lần lặp. 51 00:02:40,180 --> 00:02:45,750 Và bên trong vòng lặp này, tôi sẽ fprintf để in vào một tập tin - 52 00:02:45,750 --> 00:02:47,940 đặc biệt là một Tôi đã mở - 53 00:02:47,940 --> 00:02:54,650 một chuỗi giống như% s này,% s dấu gạch chéo ngược n quote gần. 54 00:02:54,650 --> 00:02:58,790 >> Và bây giờ tôi muốn cắm vào từng những giữ chỗ các giá trị thực tế 55 00:02:58,790 --> 00:03:03,390 tên của học sinh và một ngôi nhà Bằng cách sử dụng dấu chấm. 56 00:03:03,390 --> 00:03:10,030 Sinh viên khung i.name, sinh viên dấu ngoặc khung i.house gần 57 00:03:10,030 --> 00:03:11,230 dấu chấm phẩy. 58 00:03:11,230 --> 00:03:16,180 Bây giờ dưới này cho vòng lặp, tôi chỉ đơn giản là sẽ gọi fclose của tập tin để 59 00:03:16,180 --> 00:03:18,520 để cuối cùng đóng tập tin. 60 00:03:18,520 --> 00:03:21,360 >> Bây giờ khi tôi chạy chương trình này, tôi không nên thực sự thấy bất cứ điều gì trên 61 00:03:21,360 --> 00:03:25,010 màn hình, nhưng tôi cần phải có sau khi chạy chương trình này một tập tin gọi 62 00:03:25,010 --> 00:03:29,130 Students.CSV trong cùng thư mục Tôi chạy lệnh trong đó nên 63 00:03:29,130 --> 00:03:32,480 chứa một dấu phẩy danh sách các giá trị. 64 00:03:32,480 --> 00:03:34,790 Chúng ta hãy có một cái nhìn. 65 00:03:34,790 --> 00:03:41,690 >> Làm cho cấu trúc 1. / Structs1 học sinh tên, chúng ta hãy nói David, 66 00:03:41,690 --> 00:03:43,140 anh ta sẽ sống trong Mather. 67 00:03:43,140 --> 00:03:46,890 Tên của học sinh, chúng ta hãy nói, Lauren, cô ấy sẽ sống trong Leverett. 68 00:03:46,890 --> 00:03:50,800 Tên của học sinh, chúng ta hãy nói, Rob, anh ta sẽ sống trong Kirkland. 69 00:03:50,800 --> 00:03:54,050 Bây giờ, một lần nữa, như mong đợi, không có gì xuất hiện đã xảy ra, nhưng hãy để tôi 70 00:03:54,050 --> 00:03:58,790 đi trước tại dấu nhắc lệnh và gõ g sửa students.CSV với hy vọng rằng 71 00:03:58,790 --> 00:04:00,850 tập tin đó thực sự tồn tại. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV ENTER, và quả thật, nhận thấy rằng một tập tin có chứa hoàn toàn 73 00:04:07,010 --> 00:04:11,320 văn bản, nhưng văn bản phân cách bằng dấu phẩy cho từng lĩnh vực, thực sự tồn tại. 74 00:04:11,320 --> 00:04:14,530 Và nếu chúng ta đang sử dụng, không phải là CS50 thiết bị, nhưng một máy Mac quen thuộc hơn hoặc 75 00:04:14,530 --> 00:04:18,080 Máy tính, nó chỉ ra rằng chúng ta có thể thực sự mở tập tin CSV này với hơn 76 00:04:18,080 --> 00:04:20,400 chương trình quen thuộc như Excel hoặc số. 77 00:04:20,400 --> 00:04:22,906