1 00:00:00,000 --> 00:00:00,440 2 00:00:00,440 --> 00:00:00,860 >> LUIDSPREKER 1: Oke. 3 00:00:00,860 --> 00:00:03,260 Dat laatste programma was een beetje saai. 4 00:00:03,260 --> 00:00:05,510 Laten we verder gaan en personaliseren dit een beetje. 5 00:00:05,510 --> 00:00:07,710 In plaats van te zeggen hallo wereld, waarom gaan we niet vooruit 6 00:00:07,710 --> 00:00:09,680 en zeg hallo David? 7 00:00:09,680 --> 00:00:12,500 Nou, om dit te doen, kon ik benaderen dit in een paar manieren. 8 00:00:12,500 --> 00:00:15,760 Ik kon natuurlijk gewoon moeilijk code David, maar dat is niet zo 9 00:00:15,760 --> 00:00:17,650 fundamenteel verschillend uit de laatste versie. 10 00:00:17,650 --> 00:00:21,430 Dus laten we eens een sprong voorwaarts, ongedaan te maken dat veranderen, en in plaats daarvan plaats een nieuwe 11 00:00:21,430 --> 00:00:23,980 regel code waar lijn vijf ooit was. 12 00:00:23,980 --> 00:00:28,970 >> Specifiek, wat ik ga doen hier is toe te voegen in string naam, waardoor 13 00:00:28,970 --> 00:00:30,920 declareren van een variabele. 14 00:00:30,920 --> 00:00:34,240 Merk op dat in C, niet alleen heb je een variabele een naam, die 15 00:00:34,240 --> 00:00:38,110 dit geval is de naam, heb je ook om aan te geven wat voor soort het is. 16 00:00:38,110 --> 00:00:41,970 We zien andere soorten duurde niet lang, onder ze integers en floating point 17 00:00:41,970 --> 00:00:46,480 waarden en meer, maar voor nu, strijkkwartet is gewoon een woord of een zin, meer 18 00:00:46,480 --> 00:00:49,340 formeel een reeks zero of meer tekens. 19 00:00:49,340 --> 00:00:53,760 Dus op dit moment, deze lijn vijf is zeggende: Geef mij een variabele genaamd naam 20 00:00:53,760 --> 00:00:56,560 waarvan het gegevenstype string. 21 00:00:56,560 --> 00:01:00,460 >> Nu wil ik een waarde op te slaan daar, en dat doen C, gebruiken we gelijke 22 00:01:00,460 --> 00:01:03,030 teken, ook wel bekend als de toewijzingsoperator. 23 00:01:03,030 --> 00:01:04,860 Dus ik ga als volgt te werk. 24 00:01:04,860 --> 00:01:10,220 Evenaart citaat, unquote, D-A-V-I-D, gesloten citaat, puntkomma. 25 00:01:10,220 --> 00:01:15,595 Het netto-effect in de lijn vijf is nu om verklaren een snaar, D-A-V-I-D, opslaan 26 00:01:15,595 --> 00:01:19,480 het van de rechterkant van deze expressie in de variabele op de 27 00:01:19,480 --> 00:01:21,480 linkerkant van deze uitdrukking. 28 00:01:21,480 --> 00:01:25,970 Dus tegen het einde van deze lijn hebben we D-A-V-I-D opgeslagen in een variabele 29 00:01:25,970 --> 00:01:27,450 genaamd naam. 30 00:01:27,450 --> 00:01:28,910 >> Laten we nu gebruiken deze variabele. 31 00:01:28,910 --> 00:01:35,010 Op lijn zes, ga ik vervangen wereld met een placeholder. 32 00:01:35,010 --> 00:01:39,960 % S wordt gedefinieerd volgens de documentatie voor printf als een 33 00:01:39,960 --> 00:01:41,690 placeholder voor een string. 34 00:01:41,690 --> 00:01:44,620 Met andere woorden, het is een manier van informeren printf die ik ga zetten 35 00:01:44,620 --> 00:01:47,930 een andere waarde hier, maar laat me vertellen u in slechts een moment wat 36 00:01:47,930 --> 00:01:49,180 het gaat worden. 37 00:01:49,180 --> 00:01:52,800 Nu, hoe ga ik te werk om printf vertellen wat die waarde gaat worden? 38 00:01:52,800 --> 00:01:56,850 >> Nou, ik moet printf te voorzien van een tweede argument, en om dat te doen, ik 39 00:01:56,850 --> 00:02:00,460 moet een komma achter het eerste zetten argument, dat deze geciteerd 40 00:02:00,460 --> 00:02:04,990 snaar, en dan moet ik wat specificeren waarde wil ik aansluiten op dat 41 00:02:04,990 --> 00:02:07,010 placeholder eerste argument is. 42 00:02:07,010 --> 00:02:10,880 Dus de naam van mijn variabele is, van Natuurlijk, naam, dus volstaat typen 43 00:02:10,880 --> 00:02:14,000 "Naam" als de tweede argument printf. 44 00:02:14,000 --> 00:02:15,070 Nu laat je niet misleiden. 45 00:02:15,070 --> 00:02:20,440 Ook al is er een komma binnenkant van de opgegeven tekenreeks, dat inderdaad 46 00:02:20,440 --> 00:02:24,370 binnenzijde van de snaar zodat deze niet scheiden een argument van een ander. 47 00:02:24,370 --> 00:02:28,740 Alleen deze komma dat is buiten die tekenreeks tussen aanhalingstekens eigenlijk scheidt 48 00:02:28,740 --> 00:02:31,700 printf eerste argument van het tweede argument. 49 00:02:31,700 --> 00:02:34,270 >> Laten we nu dit programma samen te stellen. 50 00:02:34,270 --> 00:02:36,500 Maak hello een. 51 00:02:36,500 --> 00:02:39,570 Oh mijn god, vijf fouten gegenereerd, en mijn programma's 52 00:02:39,570 --> 00:02:41,100 slechts zeven regels lang. 53 00:02:41,100 --> 00:02:44,720 Nou ja, zoals altijd, niet kijken naar de laatste van de fouten op uw scherm. 54 00:02:44,720 --> 00:02:47,960 Kijk naar de allereerste want misschien is er een cascade-effect waarbij 55 00:02:47,960 --> 00:02:51,600 slechts een fout up top creƫerde de verschijning van meer fouten dan er 56 00:02:51,600 --> 00:02:52,570 eigenlijk zijn. 57 00:02:52,570 --> 00:02:56,620 >> Dus laat me omhoog, en het eerste vetgedrukte fout hier is het gebruik van 58 00:02:56,620 --> 00:02:59,140 zwartwerk identifier string. 59 00:02:59,140 --> 00:03:00,630 Bedoelde u standaard in? 60 00:03:00,630 --> 00:03:01,990 Nou nee, dat heb ik niet. 61 00:03:01,990 --> 00:03:06,700 Ik bedoel touwtje, maar het blijkt dat ik vergat die string niet bestaat als een 62 00:03:06,700 --> 00:03:10,830 gegevens typt technisch in C. Conceptueel het bestaat, maar het woord 63 00:03:10,830 --> 00:03:16,210 "String" bestaat alleen omdat de CS50 medewerkers hebben het verklaard, zo te zeggen, 64 00:03:16,210 --> 00:03:18,160 in een bestand dat we zelf schreven. 65 00:03:18,160 --> 00:03:22,540 In feite, net als iemand lang geleden verklaarde de printf functie in een bestand 66 00:03:22,540 --> 00:03:28,310 genaamd Standard io.H, dus hebben we de personeel verklaren snaar als een type gegevens in 67 00:03:28,310 --> 00:03:32,470 een bestand dat geen verrassing, heet CS50.H. 68 00:03:32,470 --> 00:03:36,340 >> Dus laten we terug gaan naar de top van mijn programmeren en informeren de compiler dat 69 00:03:36,340 --> 00:03:40,130 niet alleen ik het symbool wilt gebruiken koord, wil ik ook het opleiden van de 70 00:03:40,130 --> 00:03:42,160 compiler op wat dat symbool betekent. 71 00:03:42,160 --> 00:03:47,010 En om dat te doen heel eenvoudig, kan ik gaan terug tot een lijn, een nieuwe regel 72 00:03:47,010 --> 00:03:54,070 hier, en voeg, "omvatten CS50.H," ook tussen haakjes. 73 00:03:54,070 --> 00:03:58,170 Deze instructie, net als dat nu op lijn twee, gaat de hoogte van de 74 00:03:58,170 --> 00:04:02,460 compiler dat moet de inhoud van CS50.H waar ze ook zijn 75 00:04:02,460 --> 00:04:06,620 in mijn harde schijf in mijn programma, waardoor de compiler opleiden om 76 00:04:06,620 --> 00:04:09,050 wat wordt bedoeld met string. 77 00:04:09,050 --> 00:04:13,420 >> Laten we opnieuw compileren mijn programma na het opslaan van de wijzigingen. 78 00:04:13,420 --> 00:04:15,500 Maak hello een. 79 00:04:15,500 --> 00:04:16,440 Enter. 80 00:04:16,440 --> 00:04:17,730 Veel beter. 81 00:04:17,730 --> 00:04:23,760 Nu heb ik een knipperende regel waar ik kunt typen, ". / hello een", en voila. 82 00:04:23,760 --> 00:04:25,010 Hallo David. 83 00:04:25,010 --> 00:04:26,402