2 00:00:00,000 --> 00:00:02,470 >> Sprecher 1: Lassen Sie uns ein Programm schreiben, dass fragt den Benutzer nach dem Namen und 3 00:00:02,470 --> 00:00:03,990 Häuser von drei Studenten. 4 00:00:03,990 --> 00:00:07,300 Aber nicht nur ausdrucken, ihre Namen und Häuser auf den Bildschirm, lassen Sie uns 5 00:00:07,300 --> 00:00:09,660 statt auf der Festplatte speichern diese Informationen. 6 00:00:09,660 --> 00:00:14,530 Mit anderen Worten, erstellen wir, sagen wir, eine CSV Datei für comma separated values, 7 00:00:14,530 --> 00:00:17,720 das ist eigentlich nur eine Textdatei, die Programme wie Excel oder Numbers 8 00:00:17,720 --> 00:00:21,690 öffnen, und effektiv sparen diejenigen, Namen und Häuser dauerhaft, so dass 9 00:00:21,690 --> 00:00:23,220 können wir sie später zu bewerten. 10 00:00:23,220 --> 00:00:25,960 >> Um dies zu tun, wollen wir zunächst einen Blick auf einige Standardcode, die ich habe 11 00:00:25,960 --> 00:00:27,650 begann mit bereits. 12 00:00:27,650 --> 00:00:32,380 Zunächst, dass die unter den Überschriften Hinweis bis oben ist heute Standard lib.h die 13 00:00:32,380 --> 00:00:36,710 passiert, sind einige Funktionen bezogen haben I / O-, Datei-und Ausgabedatei. 14 00:00:36,710 --> 00:00:39,560 Beachten Sie, dass ich auch erklärt habe eine Konstante genannt STUDENTEN - 15 00:00:39,560 --> 00:00:42,380 in Großbuchstaben -, deren Wert ist hart wie drei codiert. 16 00:00:42,380 --> 00:00:45,820 Beachten Sie, dass jetzt innerhalb meiner Haupt Programm, ich bin erklärt eine Reihe von 17 00:00:45,820 --> 00:00:50,270 Größe drei mit, dass Konstante bezeichnet STUDENTEN jeweils deren Mitglieder ist der 18 00:00:50,270 --> 00:00:51,650 geben Studenten. 19 00:00:51,650 --> 00:00:56,150 >> Daran erinnern, dass ein Student jetzt werden wir definieren als mit einen Namen und ein Haus sowohl von 20 00:00:56,150 --> 00:01:00,410 die Zeichenfolgen als pro hierfür sind Erklärung beauftragt, Punkt h. 21 00:01:00,410 --> 00:01:04,680 Nun zurück in structs1.c, bemerken, dass ich haben eine for-Schleife hier, das wird 22 00:01:04,680 --> 00:01:06,750 laufen von Null bis drei ist. 23 00:01:06,750 --> 00:01:10,020 Es wird mich für einen Schüler aufgefordert, Namen und ein Studentenhaus 24 00:01:10,020 --> 00:01:12,310 wieder und wieder und wieder. 25 00:01:12,310 --> 00:01:15,620 >> Dann am Boden dieses Programms, feststellen, dass ich eine andere for-Schleife 26 00:01:15,620 --> 00:01:19,970 das wird das i-te befreien Schüler Namen und das Haus des i-ten Schüler in eine 27 00:01:19,970 --> 00:01:21,570 ähnlich aufgebaut Schleife. 28 00:01:21,570 --> 00:01:24,480 Um sicher zu sein, könnten wir diese Loops kombinieren in nur eine, aber ich wollte 29 00:01:24,480 --> 00:01:28,180 haben einige deutliche Codesegmente wegen der Diskussion hier. 30 00:01:28,180 --> 00:01:31,920 >> Jetzt in zwischen den für Schleifen, lassen tatsächlich haben andere, und das hier ist 31 00:01:31,920 --> 00:01:35,210 Ziel im Leben ist, um tatsächlich alle sparen dieser Namen und Häuser, die sind 32 00:01:35,210 --> 00:01:39,810 derzeit im RAM auf die Festplatte in der Form durch Komma getrennte Werte. 33 00:01:39,810 --> 00:01:42,080 Um dies zu tun, werden wir nutzen drei neue Funktionen - 34 00:01:42,080 --> 00:01:47,450 F offen, F printf und F in der Nähe, die eine Datei zu öffnen, in eine Datei drucken, und 35 00:01:47,450 --> 00:01:48,440 Schließen einer Datei. 36 00:01:48,440 --> 00:01:49,690 Wir können sie wie folgt verwenden. 37 00:01:49,690 --> 00:01:52,110 38 00:01:52,110 --> 00:01:58,240 >> Datei, in Großbuchstaben, die etwas von ist ein Kuriosum in C, wird FILE fopen 39 00:01:58,240 --> 00:02:03,020 Zitat unquote und jetzt einen Namen für die Datei, sagen wir, students.CSV, aber ich konnte 40 00:02:03,020 --> 00:02:08,150 nennen es die meisten etwas, Komma und jetzt bin ich gehen, um eine einzige w innen angeben 41 00:02:08,150 --> 00:02:09,390 von Anführungszeichen. 42 00:02:09,390 --> 00:02:13,290 W, wie Sie vielleicht schon erraten haben, bedeutet, dass fopen sollten diese Datei öffnen 43 00:02:13,290 --> 00:02:17,360 genannt Students.CSV für das Schreiben so dass wir tatsächlich sparen einige 44 00:02:17,360 --> 00:02:19,370 Inhalte zu. 45 00:02:19,370 --> 00:02:23,080 >> Lassen nächsten Prüfung, ob die Datei nicht gleich null. 46 00:02:23,080 --> 00:02:25,860 Denn wenn es ist, hat wahrscheinlich etwas falsch in die Falle gegangen wir 47 00:02:25,860 --> 00:02:28,340 sollte nicht fortgesetzt werden, um zu versuchen nichts, um es zu drucken. 48 00:02:28,340 --> 00:02:33,400 Aber wenn es nicht null ist, dann in der geschweiften Klammern werde ich laufen 49 00:02:33,400 --> 00:02:38,030 von i gleich 0 auf bis zu STUDENTEN, und ich bin zu gehen 50 00:02:38,030 --> 00:02:40,180 erhöhen i bei jeder Iteration. 51 00:02:40,180 --> 00:02:45,750 Und innerhalb dieser Schleife, werde ich fprintf, um so in eine Datei drucken - 52 00:02:45,750 --> 00:02:47,940 Insbesondere derjenige Ich habe bereits geöffnet - 53 00:02:47,940 --> 00:02:54,650 ein String, wie dieses% s,% s sieht Backslash n der Nähe Zitat. 54 00:02:54,650 --> 00:02:58,790 >> Und jetzt möchte ich zu jedem stecken diese Platzhalter die Istwerte 55 00:02:58,790 --> 00:03:03,390 der Name eines Schülers und ein Haus mit dem Punktoperator. 56 00:03:03,390 --> 00:03:10,030 Studenten Halterung i.name, Studenten Halterung i.house Nähe paren 57 00:03:10,030 --> 00:03:11,230 Semikolon. 58 00:03:11,230 --> 00:03:16,180 Jetzt darunter for-Schleife, ich bin einfach werde fclose der Datei in Ordnung zu rufen 59 00:03:16,180 --> 00:03:18,520 letztlich schließen Sie die Datei. 60 00:03:18,520 --> 00:03:21,360 >> Nun, wenn ich dieses Programm ausführen, soll ich nicht tatsächlich sehen, alles auf die 61 00:03:21,360 --> 00:03:25,010 Bildschirm, aber ich hätte nach der Ausführung dieses Programm eine Datei namens 62 00:03:25,010 --> 00:03:29,130 Students.CSV im gleichen Verzeichnis, die Ich den Befehl auszuführen, dass sollte 63 00:03:29,130 --> 00:03:32,480 enthalten ein Komma getrennt Liste von Werten. 64 00:03:32,480 --> 00:03:34,790 Lassen Sie uns einen Blick. 65 00:03:34,790 --> 00:03:41,690 >> / Structs1 Schüler machen Strukturen ein. zu nennen, sagen wir, David, 66 00:03:41,690 --> 00:03:43,140 er wird in Mather leben. 67 00:03:43,140 --> 00:03:46,890 Name Student, sagen wir, Lauren, sie wird in Leverett leben. 68 00:03:46,890 --> 00:03:50,800 Name Student, sagen wir, Rob, er wird in Kirkland zu leben. 69 00:03:50,800 --> 00:03:54,050 Jetzt wieder, wie erwartet, aber es passiert nichts geschehen zu sein, aber lassen Sie mich 70 00:03:54,050 --> 00:03:58,790 gehen Sie vor an der Eingabeaufforderung, und geben g students.CSV bearbeiten, in der Hoffnung, dass 71 00:03:58,790 --> 00:04:00,850 die Datei tatsächlich existiert. 72 00:04:00,850 --> 00:04:07,010 >> Gedit students.CSV ENTER, und in der Tat, feststellen, dass eine Datei, die rein 73 00:04:07,010 --> 00:04:11,320 Text, Text, sondern durch Komma getrennt für jedes Feld der Tat existiert. 74 00:04:11,320 --> 00:04:14,530 Und wenn wir mit, nicht die CS50 Gerät, sondern ein vertrauter Mac oder 75 00:04:14,530 --> 00:04:18,080 PC, stellt sich heraus, dass wir in der Tat öffnen Sie diese CSV-Datei mit einem mehr 76 00:04:18,080 --> 00:04:20,400 vertraut Programm wie Excel oder Numbers. 77 00:04:20,400 --> 00:04:22,906