1 00:00:00,000 --> 00:00:00,440 2 00:00:00,440 --> 00:00:00,860 >> SPEAKER 1: Va bene. 3 00:00:00,860 --> 00:00:03,260 Questo ultimo programma è stato un po 'noioso. 4 00:00:03,260 --> 00:00:05,510 Andiamo avanti e personalizzare questo un po '. 5 00:00:05,510 --> 00:00:07,710 Invece di dire ciao mondo, perché non andiamo avanti 6 00:00:07,710 --> 00:00:09,680 e dire, ciao David? 7 00:00:09,680 --> 00:00:12,500 Bene, per fare questo, ho potuto avvicinare questo in un paio di modi. 8 00:00:12,500 --> 00:00:15,760 Potrei, naturalmente, il codice solo difficile David, ma non è tutto quello 9 00:00:15,760 --> 00:00:17,650 fondamentalmente diverso dall'ultima versione. 10 00:00:17,650 --> 00:00:21,430 Quindi facciamo un balzo in avanti, undo che cambiare, e invece inserire una nuova 11 00:00:21,430 --> 00:00:23,980 riga di codice dove la linea cinque era una volta. 12 00:00:23,980 --> 00:00:28,970 >> In particolare, che cosa ho intenzione di fare qui è aggiungere in nome della stringa, quindi 13 00:00:28,970 --> 00:00:30,920 dichiarazione di una variabile. 14 00:00:30,920 --> 00:00:34,240 Si noti che in C, non solo avete invia un variabile un nome, che in 15 00:00:34,240 --> 00:00:38,110 questo caso è il nome, hai anche di specificare che tipo è. 16 00:00:38,110 --> 00:00:41,970 Vedremo altri tipi poco tempo, tra loro numeri interi e in virgola mobile 17 00:00:41,970 --> 00:00:46,480 valori e di più, ma per ora, stringa è solo una parola o una frase, più 18 00:00:46,480 --> 00:00:49,340 formalmente, una sequenza di zero o più caratteri. 19 00:00:49,340 --> 00:00:53,760 Quindi, al momento, questa linea cinque è dicendo, dammi una variabile denominata nome 20 00:00:53,760 --> 00:00:56,560 cui tipo di dati è string. 21 00:00:56,560 --> 00:01:00,460 >> Ora, voglio memorizzare un valore in là, e per farlo in C, usiamo la parità 22 00:01:00,460 --> 00:01:03,030 segno, altrimenti noto come il operatore di assegnazione. 23 00:01:03,030 --> 00:01:04,860 Quindi ho intenzione di procedere come segue. 24 00:01:04,860 --> 00:01:10,220 Uguale citazione, unquote, D-A-V-I-D, citazione chiuso, punto e virgola. 25 00:01:10,220 --> 00:01:15,595 L'effetto netto in linea cinque è ora quello di dichiarare una stringa, D-A-V-I-D, la memorizzazione 26 00:01:15,595 --> 00:01:19,480 dal lato destro di questa espressione nella variabile sulla 27 00:01:19,480 --> 00:01:21,480 sinistra di questa espressione. 28 00:01:21,480 --> 00:01:25,970 Così, entro la fine di questa linea, abbiamo D-A-V-I-D memorizzato all'interno di una variabile 29 00:01:25,970 --> 00:01:27,450 chiamato name. 30 00:01:27,450 --> 00:01:28,910 >> Ora usiamo questa variabile. 31 00:01:28,910 --> 00:01:35,010 On line sei, sto andando a sostituire mondo con un segnaposto. 32 00:01:35,010 --> 00:01:39,960 % S è definito secondo la documentazione per printf come un 33 00:01:39,960 --> 00:01:41,690 segnaposto per una stringa. 34 00:01:41,690 --> 00:01:44,620 In altre parole, è un modo di informare printf che ho intenzione di mettere 35 00:01:44,620 --> 00:01:47,930 qualche altro valore qui, ma lasciatemi dire in un attimo quello che 36 00:01:47,930 --> 00:01:49,180 che sta per essere. 37 00:01:49,180 --> 00:01:52,800 Ora, come procedo per raccontare printf cosa che il valore sarà? 38 00:01:52,800 --> 00:01:56,850 >> Beh, ho bisogno di fornire printf con un secondo argomento, e per farlo, ho 39 00:01:56,850 --> 00:02:00,460 bisogno di mettere una virgola dopo la prima di tali argomento, che è stato il citato 40 00:02:00,460 --> 00:02:04,990 stringa, e poi ho bisogno di specificare cosa valore Voglio inserire in quella 41 00:02:04,990 --> 00:02:07,010 segnaposto primo argomento. 42 00:02:07,010 --> 00:02:10,880 Così il nome del mio variabile è, di Naturalmente, nome, quindi è sufficiente digitare 43 00:02:10,880 --> 00:02:14,000 "Nome" come il secondo argomento di printf. 44 00:02:14,000 --> 00:02:15,070 Ora, non lasciatevi ingannare. 45 00:02:15,070 --> 00:02:20,440 Anche se vi è una virgola all'interno di la stringa tra virgolette, che è davvero 46 00:02:20,440 --> 00:02:24,370 all'interno della stringa in modo che non separare un argomento da un altro. 47 00:02:24,370 --> 00:02:28,740 Solo in questo comma che è al di fuori di tale stringa quotata in realtà separa 48 00:02:28,740 --> 00:02:31,700 primo argomento di printf dalla il suo secondo argomento. 49 00:02:31,700 --> 00:02:34,270 >> Vediamo ora compilare questo programma. 50 00:02:34,270 --> 00:02:36,500 Fai ciao uno. 51 00:02:36,500 --> 00:02:39,570 Oh mio Dio, cinque errori generati, e il mio programma 52 00:02:39,570 --> 00:02:41,100 solo sette linee lungo. 53 00:02:41,100 --> 00:02:44,720 Bene, come sempre, non guardare l'ultima degli errori sullo schermo. 54 00:02:44,720 --> 00:02:47,960 Guardate la prima perché forse c'è un effetto a cascata per cui 55 00:02:47,960 --> 00:02:51,600 un solo errore su cima creato il aspetto di più errori che ci 56 00:02:51,600 --> 00:02:52,570 in realtà sono. 57 00:02:52,570 --> 00:02:56,620 >> Così mi permetta di scorrere verso l'alto, e la prima di queste Errore in grassetto ecco uso di 58 00:02:56,620 --> 00:02:59,140 stringa identificatore non dichiarato. 59 00:02:59,140 --> 00:03:00,630 Forse intendevi standard? 60 00:03:00,630 --> 00:03:01,990 Beh no, non l'ho fatto. 61 00:03:01,990 --> 00:03:06,700 Ho fatto stringa dire, ma si scopre che dimenticato che stringa non esiste come 62 00:03:06,700 --> 00:03:10,830 tipo tecnicamente in C. Concettualmente dati esiste, ma la parola 63 00:03:10,830 --> 00:03:16,210 "String" esiste solo perché il CS50 staff hanno dichiarato che, per così dire, 64 00:03:16,210 --> 00:03:18,160 in un file che abbiamo scritto. 65 00:03:18,160 --> 00:03:22,540 Infatti, proprio come qualcuno tempo fa ha dichiarato la funzione printf in un file 66 00:03:22,540 --> 00:03:28,310 chiamato IO.H standard, quindi abbiamo fatto noi l' personale dichiarano stringa come un tipo di dati in 67 00:03:28,310 --> 00:03:32,470 un file che, non è una sorpresa, è chiamato CS50.H. 68 00:03:32,470 --> 00:03:36,340 >> Quindi torniamo all'inizio della mia programmare e informare il compilatore che 69 00:03:36,340 --> 00:03:40,130 Non solo voglio usare il simbolo stringa, voglio anche educare il 70 00:03:40,130 --> 00:03:42,160 compilatore su che cosa significa quel simbolo. 71 00:03:42,160 --> 00:03:47,010 E per farlo molto semplicemente, posso andare indietro fino alla linea uno, inserire una nuova riga 72 00:03:47,010 --> 00:03:54,070 qui, e aggiungere, "includono CS50.H" anche tra le parentesi angolari. 73 00:03:54,070 --> 00:03:58,170 Questa istruzione, molto simile a quella ora sulla linea due, sta per informare il 74 00:03:58,170 --> 00:04:02,460 compilatore che dovrebbe includere la contenuto di CS50.H ovunque si trovino 75 00:04:02,460 --> 00:04:06,620 nel mio disco rigido all'interno del mio programma, educare in tal modo il compilatore per 76 00:04:06,620 --> 00:04:09,050 cosa si intende per stringa. 77 00:04:09,050 --> 00:04:13,420 >> Facciamo ricompilare il mio programma dopo aver salvato le modifiche. 78 00:04:13,420 --> 00:04:15,500 Fai ciao uno. 79 00:04:15,500 --> 00:04:16,440 Invio. 80 00:04:16,440 --> 00:04:17,730 Molto meglio. 81 00:04:17,730 --> 00:04:23,760 Ora ho un prompt lampeggiante a cui ho possibile digitare ". / ciao uno", e voilà. 82 00:04:23,760 --> 00:04:25,010 Ciao David. 83 00:04:25,010 --> 00:04:26,402