1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI彭:我們幾乎 通過所有pset時。 3 00:00:08,770 --> 00:00:12,080 事實上,我們正​​在通過廣大 最困難的pset。 4 00:00:12,080 --> 00:00:14,350 所以我們實際上只是 要那種清風 5 00:00:14,350 --> 00:00:16,050 在接下來的幾個星期。 6 00:00:16,050 --> 00:00:19,520 >> 我們將開始談論我們的 最終的項目,事件即將到來 7 00:00:19,520 --> 00:00:21,320 在接下來的幾個星期。 8 00:00:21,320 --> 00:00:23,825 而生命將變得輕而易舉。 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 所以今天不會太大。 11 00:00:27,680 --> 00:00:30,280 >> 我們希望,實際上清風 通過今天的議程, 12 00:00:30,280 --> 00:00:33,400 然後離開這裡 一些空餘時間。 13 00:00:33,400 --> 00:00:36,210 另外,我要道歉 今日缺乏糖果。 14 00:00:36,210 --> 00:00:37,030 我不知道為什麼。 15 00:00:37,030 --> 00:00:40,520 但在週通向 萬聖節,我會忘記糖果。 16 00:00:40,520 --> 00:00:43,290 >> 所以,我其實只是一個巨大的 失望對現在的你。 17 00:00:43,290 --> 00:00:47,050 因為我真的記糖果 對於每一個類,但萬聖節。 18 00:00:47,050 --> 00:00:49,345 但在下週,我將帶來 一倍糖果的量 19 00:00:49,345 --> 00:00:50,720 彌補的是,所有的你。 20 00:00:50,720 --> 00:00:53,260 這將是巨大的。 21 00:00:53,260 --> 00:00:56,690 >> 所以,我有一對夫婦的公告 對於一些調度。 22 00:00:56,690 --> 00:00:59,520 我有一些時間安排問題。 23 00:00:59,520 --> 00:01:02,150 然後,我們將進入到 說說什麼叫做文件模式。 24 00:01:02,150 --> 00:01:05,980 我們要談 快速TCP / IP HTTP。 25 00:01:05,980 --> 00:01:09,770 >> 然後,我們將編寫我們 自己的網站上使用HTML和CSS。 26 00:01:09,770 --> 00:01:13,030 然後我會真正離開也許 20分鐘就好談pset6。 27 00:01:13,030 --> 00:01:16,550 由於pset6實際上是一個很大的 東西,我們已經看到過, 28 00:01:16,550 --> 00:01:19,090 但我想刷新 其中的一些概念 29 00:01:19,090 --> 00:01:22,140 並教了新的功能。 30 00:01:22,140 --> 00:01:23,110 >> 酷。 31 00:01:23,110 --> 00:01:25,440 所以首先, 歡迎破發。 32 00:01:25,440 --> 00:01:27,410 我希望你休息是愉快的。 33 00:01:27,410 --> 00:01:29,695 請問你做的休息時間嗎? 34 00:01:29,695 --> 00:01:30,820 聽眾:去紐約。 35 00:01:30,820 --> 00:01:32,030 ANDI彭:你去紐約? 36 00:01:32,030 --> 00:01:33,738 我認為,一半的學校 去紐約。 37 00:01:33,738 --> 00:01:34,740 它的所有權利。 38 00:01:34,740 --> 00:01:38,250 我花了我大部分的突破 久坐不動的在床上Netflixing。 39 00:01:38,250 --> 00:01:39,760 這是一個好時機。 40 00:01:39,760 --> 00:01:43,450 >> 但我們現在回來了,回到了 會議上,背的東西擺動。 41 00:01:43,450 --> 00:01:47,900 我們中午,由於這週五PSET。 42 00:01:47,900 --> 00:01:50,240 >> 我想你已經已經 拿起你的測驗,是嗎? 43 00:01:50,240 --> 00:01:52,140 所以誰比誰有 沒有他們的測驗, 44 00:01:52,140 --> 00:01:55,416 請進來,讓你的測驗 從我在段的末端。 45 00:01:55,416 --> 00:01:56,540 或者跟踪我在校園裡。 46 00:01:56,540 --> 00:01:59,310 我會用我的地方。 47 00:01:59,310 --> 00:02:02,120 >> 我們的最後一個項目的前期建議也。 48 00:02:02,120 --> 00:02:06,380 因此,對於我們這些從來沒有花誰 這個課前,CS50的頂峰 49 00:02:06,380 --> 00:02:11,150 在這個非常高潮 宏偉工程的學生提出。 50 00:02:11,150 --> 00:02:14,300 和預提案, 只是一個總體思路 51 00:02:14,300 --> 00:02:18,500 對什麼人可能想為自己的 項目,這個想法是因為週一, 52 00:02:18,500 --> 00:02:20,780 下週一中午。 53 00:02:20,780 --> 00:02:23,800 >> 那麼好看多了,大衛·我想會 談論這個講座 54 00:02:23,800 --> 00:02:25,390 如果他沒有。 55 00:02:25,390 --> 00:02:28,710 而有一個堅實的頁面 在我們的網站解釋 56 00:02:28,710 --> 00:02:31,610 該項目的所有要求。 57 00:02:31,610 --> 00:02:34,082 但本質上,挑 你已經任何主題 58 00:02:34,082 --> 00:02:35,915 一直關注 整個在這裡你的時間 59 00:02:35,915 --> 00:02:41,760 在CS,無論是遊戲還是 設計或視頻或任何東西。 60 00:02:41,760 --> 00:02:44,920 >> 你可以真的有種 現在應用的一些經驗 61 00:02:44,920 --> 00:02:52,470 我們在這裡學到的CS50--喜, welcome--到幾乎舉辦 62 00:02:52,470 --> 00:02:56,320 您所選擇的最終項目。 63 00:02:56,320 --> 00:02:59,570 所有這一切是由於週一 通過電子郵件只是一個簡短的Blurb的 64 00:02:59,570 --> 00:03:02,010 對我來說,一個快速的句子, 像,哎,安迪, 65 00:03:02,010 --> 00:03:06,490 我對設計很感興趣 一個遊戲,這是否為iOS。 66 00:03:06,490 --> 00:03:07,420 酷。 67 00:03:07,420 --> 00:03:10,767 只要讓我看看你的簡短的初始 想法最終的項目。 68 00:03:10,767 --> 00:03:13,850 我們將討論通過與否 這其實是一個好主意與否, 69 00:03:13,850 --> 00:03:15,590 如果它是一個可行的主意或沒有。 70 00:03:15,590 --> 00:03:20,760 但就在預建議 是由於下週一。 71 00:03:20,760 --> 00:03:24,190 pset6,我們可愛的web--這是錯誤的。 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 這是pset6,對不對? 75 00:03:26,680 --> 00:03:32,690 >> pset6,我們的Web服務器,是因為 星期五中午與已故的一天。 76 00:03:32,690 --> 00:03:37,660 辦公時間為星期一正常地恢復 至週四8:00至本週11:00。 77 00:03:37,660 --> 00:03:39,710 我想共享的 接下來的三個晚上。 78 00:03:39,710 --> 00:03:40,310 酷。 79 00:03:40,310 --> 00:03:44,260 之前我們已經為物質,沒有任何人 有任何疑問,笑話,故事? 80 00:03:44,260 --> 00:03:46,662 你做了什麼秋季休息? 81 00:03:46,662 --> 00:03:48,640 >> 聽眾:我做什麼? 82 00:03:48,640 --> 00:03:52,834 >> ANDI彭:已 這是很久以前其實。 83 00:03:52,834 --> 00:03:54,000 Christabel去紐約。 84 00:03:54,000 --> 00:03:55,614 我住在這裡,並Netflixed。 85 00:03:55,614 --> 00:03:56,864 聽眾:哦,是的,我在這裡。 86 00:03:56,864 --> 00:03:57,614 ANDI彭:哦,好。 87 00:03:57,614 --> 00:03:59,792 聽眾:我不記得 具體是什麼。 88 00:03:59,792 --> 00:04:00,710 ANDI彭:這是確定的。 89 00:04:00,710 --> 00:04:01,960 聽眾:Netflixing可能。 90 00:04:01,960 --> 00:04:02,990 ANDI彭:Netflixing。 91 00:04:02,990 --> 00:04:04,710 是的,這是一個好時機。 92 00:04:04,710 --> 00:04:05,780 確定。 93 00:04:05,780 --> 00:04:06,340 好的。 94 00:04:06,340 --> 00:04:08,877 之前有任何疑問 我們跳進材料? 95 00:04:08,877 --> 00:04:11,210 此外,我們要嘗試 今天一節的速度通過, 96 00:04:11,210 --> 00:04:12,504 沒有過多的涉及。 97 00:04:12,504 --> 00:04:14,420 並希望,我們會得到 在這裡有點早。 98 00:04:14,420 --> 00:04:15,580 對不起,沒有糖果,也是。 99 00:04:15,580 --> 00:04:20,310 我很失望, 特別是在萬聖節。 100 00:04:20,310 --> 00:04:21,110 >> 好的。 101 00:04:21,110 --> 00:04:21,810 酷。 102 00:04:21,810 --> 00:04:28,370 所以,我們要開始談論 一個命令行參數調用文件模式。 103 00:04:28,370 --> 00:04:32,850 文件模式,所有這僅僅是一個Unix系統 調用命令行進行 104 00:04:32,850 --> 00:04:34,700 更改文件權限。 105 00:04:34,700 --> 00:04:37,790 因此,例如,我們已經 所有遇到頁 106 00:04:37,790 --> 00:04:40,550 這樣很可能在某個時候 我們的生活中是一個互聯網跨度 107 00:04:40,550 --> 00:04:45,110 用戶,我們的網站服務器, 給了我們故宮的錯誤。 108 00:04:45,110 --> 00:04:49,086 您沒有權限訪問, yadda,yadda,yadda,在此服務器上。 109 00:04:49,086 --> 00:04:50,960 所有這一切的真正含義 是權限 110 00:04:50,960 --> 00:04:53,920 該貼到任何 頁面您試圖訪問 111 00:04:53,920 --> 00:04:55,840 不向你敞開。 112 00:04:55,840 --> 00:04:57,870 因此,相當多,文件模式 是在其中的方式 113 00:04:57,870 --> 00:05:02,140 我們可以修改這些系統權限 給每個人,用戶,組, 114 00:05:02,140 --> 00:05:04,975 或世界,或任何 這些接入組合 115 00:05:04,975 --> 00:05:07,900 對某些文件, 目錄,任何事情真的, 116 00:05:07,900 --> 00:05:11,720 在任何一種制度 操作系統。 117 00:05:11,720 --> 00:05:14,039 因此,如果任何人有 如果你覺得電腦 118 00:05:14,039 --> 00:05:17,080 像今天一起跟隨我, 完全隨意只需鍵入的東西 119 00:05:17,080 --> 00:05:17,580 研究。 120 00:05:17,580 --> 00:05:19,790 如果沒有,你可以只掛出。 121 00:05:19,790 --> 00:05:23,170 所以,我要真正拉動 我的終端現在。 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> 因此,要運行的命令 文件模式,或者至少只 124 00:05:32,310 --> 00:05:37,840 列出的權限您 文件目錄,只是LS-L。 125 00:05:37,840 --> 00:05:42,270 正如你所看到的,一堆 東西彈出其中大部分 126 00:05:42,270 --> 00:05:45,390 重要的是我們 左手側此處。 127 00:05:45,390 --> 00:05:48,710 你們看到了一堆RS,WS,1 /的。 128 00:05:48,710 --> 00:05:49,210 是啊。 129 00:05:49,210 --> 00:05:51,400 >> 這些基本上都是剛 所有的文件權限 130 00:05:51,400 --> 00:05:55,960 解釋什麼特定的目錄 和你的系統中的文件有。 131 00:05:55,960 --> 00:05:58,150 因此,讓我們回去 這裡的功率點。 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 因此,除了文件名 因為你們可以在右側看到, 134 00:06:06,500 --> 00:06:10,312 我們期待看到本質 只是在左邊的列中。 135 00:06:10,312 --> 00:06:12,020 所以除了剛 文件名,我們 136 00:06:12,020 --> 00:06:16,240 可以看到文件的權限,他們 所有者組,組名,日期 137 00:06:16,240 --> 00:06:18,460 該文件的最後 改性,等等。 138 00:06:18,460 --> 00:06:20,640 你可以看到很多使用chmod東西。 139 00:06:20,640 --> 00:06:26,037 讓我們讀文件模式的方式是, 我們幾乎忽略第一個字母 140 00:06:26,037 --> 00:06:27,370 在閱讀權限方面。 141 00:06:27,370 --> 00:06:31,460 >> 第一個字母只是告訴我們什麼 系統的類型,我們在訪問。 142 00:06:31,460 --> 00:06:34,240 研發,在這種情況下,是一 文件夾或目錄。 143 00:06:34,240 --> 00:06:38,430 因此,我們知道,目前我的工作區 第七節是一個目錄。 144 00:06:38,430 --> 00:06:41,530 然後你看到三個 黑社會,本質上只是 145 00:06:41,530 --> 00:06:43,490 三組三個字符。 146 00:06:43,490 --> 00:06:45,680 你能想到的每一個位。 147 00:06:45,680 --> 00:06:49,260 >> 所以,你只是有三套 三個比特,九個位總共。 148 00:06:49,260 --> 00:06:51,420 你對待他們三個一組。 149 00:06:51,420 --> 00:06:56,230 所以三第一組是 總是你的用戶權限。 150 00:06:56,230 --> 00:07:00,557 >> 你的第二個三組 總是你的組權限。 151 00:07:00,557 --> 00:07:02,765 而你的第三個三集 總是喜歡這個世界, 152 00:07:02,765 --> 00:07:04,380 在無處不在的權限。 153 00:07:04,380 --> 00:07:06,320 所以我想簡單 要問的問題是什麼 154 00:07:06,320 --> 00:07:08,051 用戶和組之間的差異。 155 00:07:08,051 --> 00:07:09,800 主要的區別 用戶和組之間 156 00:07:09,800 --> 00:07:13,180 是用戶就是你本人 訪問無論它是現在。 157 00:07:13,180 --> 00:07:18,070 一組可以,如果你有多個 一台計算機上的用戶,例如。 158 00:07:18,070 --> 00:07:20,280 所有的人都可以被視為一組。 159 00:07:20,280 --> 00:07:23,220 >> 然後天下 只是世界上,每一個人。 160 00:07:23,220 --> 00:07:31,010 因此,我們可以在後面看到我們如何 修改這些成不同的權限。 161 00:07:31,010 --> 00:07:33,080 因此相當多,我們 將仍然集中 162 00:07:33,080 --> 00:07:38,450 在左側,在那裡部分 對於目錄CS50我們看到drwx, 163 00:07:38,450 --> 00:07:40,970 其中,第r只是意味著它的可讀性。 164 00:07:40,970 --> 00:07:42,620 >> 在W只是意味著它是可寫的。 165 00:07:42,620 --> 00:07:45,470 然後在X剛 意味著它的可執行文件。 166 00:07:45,470 --> 00:07:47,220 你會覺得它種 對沒有任何意義。 167 00:07:47,220 --> 00:07:47,993 應該是E。 168 00:07:47,993 --> 00:07:50,150 但實際上x樣的 工作好一點, 169 00:07:50,150 --> 00:07:51,690 因為你可以更好地記住它。 170 00:07:51,690 --> 00:07:56,406 >> 因此,三種類型的東西你 能做到的,你可以讀文件, 171 00:07:56,406 --> 00:07:59,280 你可以有權限寫 文件,或者你可以有權限 172 00:07:59,280 --> 00:08:00,780 要執行的文件。 173 00:08:00,780 --> 00:08:04,580 因此,我們實際上的方式, 代表了那些位 174 00:08:04,580 --> 00:08:06,940 是數字4,2和1。 175 00:08:06,940 --> 00:08:12,870 因此可以將任何可讀是 通過4-數來表示。 176 00:08:12,870 --> 00:08:15,150 >> 凡是是可寫的 由2表示。 177 00:08:15,150 --> 00:08:18,880 和任何的可執行 如由1表示。 178 00:08:18,880 --> 00:08:22,860 所以在這個意義上,我們也可以 代表這些numbers-- 179 00:08:22,860 --> 00:08:25,281 您好,歡迎,以不同的方式。 180 00:08:25,281 --> 00:08:25,780 抱歉。 181 00:08:25,780 --> 00:08:28,510 每個人都在,我要去 道歉代表大家 182 00:08:28,510 --> 00:08:29,468 現在進入教室。 183 00:08:29,468 --> 00:08:30,810 我忘了今天的糖果。 184 00:08:30,810 --> 00:08:33,640 對不起,我是個失敗 本週萬聖節。 185 00:08:33,640 --> 00:08:37,070 我會帶雙量 糖果下次來彌補它。 186 00:08:37,070 --> 00:08:42,360 但不管怎麼說,對不起 關於球員,對不起。 187 00:08:42,360 --> 00:08:46,640 >> 於是方式,我們實際上可以輸入 我們命令的參數是我們 188 00:08:46,640 --> 00:08:51,760 可以做CHMOD組斜線權限, 其中,該集團只是什麼 189 00:08:51,760 --> 00:08:54,130 組我們正在試圖改變。 190 00:08:54,130 --> 00:08:56,600 而權限 無論我們想給它添加。 191 00:08:56,600 --> 00:08:58,860 因此,例如,該 再加上增加了權限, 192 00:08:58,860 --> 00:09:01,590 和減法帶走權限。 193 00:09:01,590 --> 00:09:07,060 >> 和組的類型,我們有我們的一個 對於所有,U為用戶,克群, 194 00:09:07,060 --> 00:09:09,050 或o他人。 195 00:09:09,050 --> 00:09:10,300 這是一個有點抽象,現在。 196 00:09:10,300 --> 00:09:13,550 但是,我們就去了幾個例子 只是為了證明這一點真正的快。 197 00:09:13,550 --> 00:09:16,960 大家好這個 幻燈片,這樣我就可以繼續前進? 198 00:09:16,960 --> 00:09:18,280 酷。 199 00:09:18,280 --> 00:09:21,290 >> 因此,例如,RWX。 200 00:09:21,290 --> 00:09:26,720 在我們討論究竟意味著什麼, 首先是什麼RWX是什麼意思? 201 00:09:26,720 --> 00:09:31,450 如果你看到這一定 文件具有RWX權限, 202 00:09:31,450 --> 00:09:34,270 這是什麼意思 人可能是能夠做到? 203 00:09:34,270 --> 00:09:35,740 >> 聽眾:讀,寫和執行。 204 00:09:35,740 --> 00:09:36,420 >> ANDI彭:是的,沒錯。 205 00:09:36,420 --> 00:09:37,840 你可以讀寫和執行。 206 00:09:37,840 --> 00:09:40,790 因為所有這三個的 字符都存在。 207 00:09:40,790 --> 00:09:44,370 因此,如果我們繼續聊 有關這方面的比特而言, 208 00:09:44,370 --> 00:09:48,490 的RWX也可以被表示為700。 209 00:09:48,490 --> 00:09:53,370 因為你可以在任何看到 之類的文件目錄的權限, 210 00:09:53,370 --> 00:09:54,320 有三個黑社會。 211 00:09:54,320 --> 00:09:58,060 >> 在這種情況下,只有第一 黑社會有什麼存在。 212 00:09:58,060 --> 00:10:04,050 所以在這種情況下,r是4, 的w是2,x是1。 213 00:10:04,050 --> 00:10:05,860 如果加在一起的,這是7。 214 00:10:05,860 --> 00:10:08,730 >> 所以,如果轉換 它為二進制,它是700。 215 00:10:08,730 --> 00:10:10,310 因為圖7是第一個三合一。 216 00:10:10,310 --> 00:10:12,760 0,沒有什麼禮物 在第二個黑社會。 217 00:10:12,760 --> 00:10:15,850 然後還有什麼存在的 第三個黑社會,所以這是另外一個0。 218 00:10:15,850 --> 00:10:22,520 >> 因此,在同樣的意義,一幫黑社會 只是在比特可以表示,只是 219 00:10:22,520 --> 00:10:23,600 以二進制為好。 220 00:10:23,600 --> 00:10:29,920 因此,700表示完全一樣的東西 RWX ------在權限方面。 221 00:10:29,920 --> 00:10:32,590 每個人都清楚這一點? 222 00:10:32,590 --> 00:10:33,090 酷。 223 00:10:33,090 --> 00:10:40,290 所以CHMOD 111將使 其中該文件的權限? 224 00:10:40,290 --> 00:10:42,600 給你們一對夫婦 秒到這種轉換。 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 還記得,第一次 三元組是用於用戶。 227 00:10:53,250 --> 00:10:56,320 第二三元組的組。 228 00:10:56,320 --> 00:10:59,450 而第三個黑社會是適合每一個人。 229 00:10:59,450 --> 00:11:03,680 >> 所以CHMOD 111將給予其 權限,並為之類型? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 就拿幾秒鐘, 想想回來。 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 是啊。 234 00:11:20,910 --> 00:11:22,920 >> 聽眾:所以每個人都可以執行它。 235 00:11:22,920 --> 00:11:23,920 ANDI彭:是的,沒錯。 236 00:11:23,920 --> 00:11:25,544 聽眾:但是,沒有人可以讀取或寫入。 237 00:11:25,544 --> 00:11:27,910 ANDI彭:並隨時 為給大家講解 238 00:11:27,910 --> 00:11:29,860 你怎麼來了這個結論。 239 00:11:29,860 --> 00:11:34,290 >> 聽眾:那麼,對於用戶來說, 組,和世界,這是所有1, 240 00:11:34,290 --> 00:11:35,700 這是可執行的代碼。 241 00:11:35,700 --> 00:11:37,070 >> ANDI彭:是的,沒錯。 242 00:11:37,070 --> 00:11:42,320 所以圖1,在這種情況下,我們都知道是 即是這樣的可執行代碼。 243 00:11:42,320 --> 00:11:45,280 因為閱讀是4。 244 00:11:45,280 --> 00:11:45,990 寫作是2。 245 00:11:45,990 --> 00:11:47,230 而可執行文件是1。 246 00:11:47,230 --> 00:11:51,580 那麼,這三個黑社會是1,那 意味著走向世界,給用戶, 247 00:11:51,580 --> 00:11:54,680 和基團,它們 都是可執行文件。 248 00:11:54,680 --> 00:11:56,170 >> 每個人都好有嗎? 249 00:11:56,170 --> 00:11:56,940 確定。 250 00:11:56,940 --> 00:11:59,180 這樣一來,第二路 我們實際上可以 251 00:11:59,180 --> 00:12:01,220 寫這也是你 可能只是做搭配chmod 252 00:12:01,220 --> 00:12:05,050 加的X.一個是指所有或每個人。 253 00:12:05,050 --> 00:12:07,060 加號是指給予許可。 254 00:12:07,060 --> 00:12:09,112 然後將x表示可執行文件。 255 00:12:09,112 --> 00:12:11,070 因此,有兩個命令 實際上是相同的。 256 00:12:11,070 --> 00:12:12,903 所以,如果你想運行 這在你的終端, 257 00:12:12,903 --> 00:12:15,830 你做搭配chmod 111名 您的目錄或文件。 258 00:12:15,830 --> 00:12:18,520 或者,你可以做搭配chmod加X, 目錄文件的名稱。 259 00:12:18,520 --> 00:12:22,150 同樣的事情,只是一個簡單的方法, 或許,對於一些代表或改變 260 00:12:22,150 --> 00:12:24,280 文件權限。 261 00:12:24,280 --> 00:12:28,806 >> 用chmod每個人都OK 之前,我們繼續前進? 262 00:12:28,806 --> 00:12:31,700 酷。 263 00:12:31,700 --> 00:12:35,336 所以,現在我們要前往成 很抽象的概念,幾張幻燈片 264 00:12:35,336 --> 00:12:37,210 我是非常 要微風通過。 265 00:12:37,210 --> 00:12:39,530 而且它的,如果你完全確定 不明白了一切。 266 00:12:39,530 --> 00:12:42,330 >> 即使是現在,我還是真的不 完全明白了一切。 267 00:12:42,330 --> 00:12:44,640 但更得到了 頂級的理解 268 00:12:44,640 --> 00:12:47,280 如何對這些事情的工作。 269 00:12:47,280 --> 00:12:50,490 因此,我們要談 趕緊有關TCP / IP, 270 00:12:50,490 --> 00:12:54,880 這僅僅是傳輸控制 協議削減互聯網協議。 271 00:12:54,880 --> 00:12:57,135 >> 從講座回憶, 大衛,他才教你 272 00:12:57,135 --> 00:13:00,700 在那裡,他想通過這個例子 在一個信封的注意事項 273 00:13:00,700 --> 00:13:02,790 高達喜歡報告廳的頂部? 274 00:13:02,790 --> 00:13:06,990 所以在法學院禮堂 大衛基本上證明 275 00:13:06,990 --> 00:13:10,370 如何在TCP / IP協議的工作原理 某種意義上說,所有這 276 00:13:10,370 --> 00:13:14,300 是是確保數據的方式 已交付跨越服務器 277 00:13:14,300 --> 00:13:15,870 或在互聯網上。 278 00:13:15,870 --> 00:13:22,270 因此,在包絡線的例子 和消息,在端用戶 279 00:13:22,270 --> 00:13:26,410 看得出來,哦,我需要 收到四包的信息。 280 00:13:26,410 --> 00:13:28,096 >> 但事實上,我只是收到了三份。 281 00:13:28,096 --> 00:13:29,470 這意味著我必須失去之一。 282 00:13:29,470 --> 00:13:30,760 和一個未送達。 283 00:13:30,760 --> 00:13:33,990 等的TCP / IP在網絡上, 通過您的計算機和服務器, 284 00:13:33,990 --> 00:13:35,500 做同樣的事情。 285 00:13:35,500 --> 00:13:38,900 它所做的就是指定一個 框架,其中丟失的數據 286 00:13:38,900 --> 00:13:41,100 數據包可以重新發送和接收。 287 00:13:41,100 --> 00:13:44,760 >> 就像在互聯網上,當你試圖 在線訪問文件或發送的文件 288 00:13:44,760 --> 00:13:48,210 給您的朋友或看網頁 瀏覽器,千千萬 289 00:13:48,210 --> 00:13:50,440 的數十億 的字節的信息 290 00:13:50,440 --> 00:13:52,840 每毫秒傳送。 291 00:13:52,840 --> 00:13:54,560 而且它是真的,真的很令人困惑。 292 00:13:54,560 --> 00:13:57,110 它真的很難 真正知道什麼是被發送 293 00:13:57,110 --> 00:13:58,270 而什麼不被發送。 294 00:13:58,270 --> 00:14:02,210 >> 所以TCP / IP只是規定 一個有凝聚力的框架 295 00:14:02,210 --> 00:14:04,115 在您的網站 瀏覽器和服務器 296 00:14:04,115 --> 00:14:05,990 一種可以溝通 彼此,只是 297 00:14:05,990 --> 00:14:08,550 確保數據包 一切都在這裡並沒有什麼失落的 298 00:14:08,550 --> 00:14:12,700 和所有你請求的數據 實際顯示正常。 299 00:14:12,700 --> 00:14:16,350 每個人都在這一點很確定 短暫的高層次明白了嗎? 300 00:14:16,350 --> 00:14:18,510 酷。 301 00:14:18,510 --> 00:14:21,550 >> 於是我們將移動 到談論HTTP,這 302 00:14:21,550 --> 00:14:24,610 僅僅是超文本傳輸協議。 303 00:14:24,610 --> 00:14:32,550 HTTP,所有這一切是任何頁面 或文件被訪問您的網站上, 304 00:14:32,550 --> 00:14:35,810 服務器返回一個HTTP 在響應狀態代碼 305 00:14:35,810 --> 00:14:39,869 於該請求確保 或者,哦,這個請求經歷。 306 00:14:39,869 --> 00:14:41,410 而一切都顯示正常。 307 00:14:41,410 --> 00:14:43,500 或者說,哦,不,404。 308 00:14:43,500 --> 00:14:44,730 出事了。 309 00:14:44,730 --> 00:14:45,940 哦,我不能顯示。 310 00:14:45,940 --> 00:14:50,370 >> 所有這是是什麼 您嘗試訪問, 311 00:14:50,370 --> 00:14:55,160 作為用戶使用正試圖訪問, 在internet--只是確保 312 00:14:55,160 --> 00:15:00,080 你可能成功,也有 訪問無論是與否 313 00:15:00,080 --> 00:15:02,080 成功訪問不管它是什麼。 314 00:15:02,080 --> 00:15:05,120 這樣一來,HTTP狀態 代碼只是為您提供 315 00:15:05,120 --> 00:15:09,910 是能夠知道是否一個裝置 或者不是很成功與否。 316 00:15:09,910 --> 00:15:13,440 因此,例如,一個示例請求。 317 00:15:13,440 --> 00:15:16,050 >> 在這裡你可以看到它的 通常一般四行。 318 00:15:16,050 --> 00:15:22,530 我們有一個GET HTTP 1.1,這僅僅是 該方法請求的URL,協議 319 00:15:22,530 --> 00:15:24,490 版本,字段名, 和字段值。 320 00:15:24,490 --> 00:15:26,810 所以完全沒必要 這裡記住任何東西。 321 00:15:26,810 --> 00:15:29,960 只是那種熟悉 自己與如何將這些看。 322 00:15:29,960 --> 00:15:34,060 >> 在本實施例中,該方法要求 URL只是任何要求 323 00:15:34,060 --> 00:15:35,620 您發送的服務器。 324 00:15:35,620 --> 00:15:40,710 就像,嘿嘿,服務器,我真想 訪問yadda,yadda,yadda,HTTP頁面。 325 00:15:40,710 --> 00:15:43,785 協議版本只是什麼 版本的主機或服務器 326 00:15:43,785 --> 00:15:45,490 用於訪問信息。 327 00:15:45,490 --> 00:15:49,510 >> 該字段名的網站或 那你要訪問的URL, 328 00:15:49,510 --> 00:15:52,610 在這種情況下,www.apple.com。 329 00:15:52,610 --> 00:15:56,110 和字段值是 只是典型的名稱,值。 330 00:15:56,110 --> 00:15:59,540 它可以是任何類型的組合的 字母或數字或什麼的。 331 00:15:59,540 --> 00:16:02,890 >> 因此,一個典型的請求,所以 其實你的電腦 332 00:16:02,890 --> 00:16:08,400 發送給,說,哎服務器, 你知道我需要這顯示, 333 00:16:08,400 --> 00:16:13,000 這是那種要求 他們實際上得到。 334 00:16:13,000 --> 00:16:16,760 什麼樣的實例響應 服務器會發送回您 335 00:16:16,760 --> 00:16:20,320 將幾乎同樣的事情, 除與在頂部的狀態代碼。 336 00:16:20,320 --> 00:16:24,550 所以200,2 0 0總是 該狀態代碼確定。 337 00:16:24,550 --> 00:16:26,050 就像,OK,這個請求經歷。 338 00:16:26,050 --> 00:16:27,980 你是能夠訪問 一切正常。 339 00:16:27,980 --> 00:16:28,810 生活是美好的。 340 00:16:28,810 --> 00:16:29,990 生活是美好。 341 00:16:29,990 --> 00:16:32,150 一切都完全好。 342 00:16:32,150 --> 00:16:36,050 >> 所以,這只是告訴瀏覽器, 你的服務器,嘿嘿,一切都很好。 343 00:16:36,050 --> 00:16:37,470 我得到了所有我需要的信息。 344 00:16:37,470 --> 00:16:39,160 酷。 345 00:16:39,160 --> 00:16:41,790 但問題是 有時問題上來 346 00:16:41,790 --> 00:16:46,850 當你have--最後我想 我談到重複。 347 00:16:46,850 --> 00:16:48,870 你有不太好的反應。 348 00:16:48,870 --> 00:16:52,660 >> 因此,例如,404 是找不到網頁。 349 00:16:52,660 --> 00:16:54,897 有時你有一個禁止訪問。 350 00:16:54,897 --> 00:16:56,730 可使用不同的其它 我是狀態碼 351 00:16:56,730 --> 00:16:59,688 確保你當你都看到了 努力做研究在互聯網上。 352 00:16:59,688 --> 00:17:02,300 你的瀏覽器給你 對,不,不能訪問。 353 00:17:02,300 --> 00:17:04,190 而你喜歡,好了,廢話。 354 00:17:04,190 --> 00:17:09,260 >> 因此,只要好看多了,有 一些很常見的狀態碼。 355 00:17:09,260 --> 00:17:14,109 也許熟悉 有哪些那些。 356 00:17:14,109 --> 00:17:16,000 最有趣的一個 我想我已經聽過 357 00:17:16,000 --> 00:17:18,040 of--如果你碰巧 查找所有的人 358 00:17:18,040 --> 00:17:21,490 線上,由於某種原因,有 實際上是一個真正的狀態碼 359 00:17:21,490 --> 00:17:26,619 所謂418我是一個茶壺。 360 00:17:26,619 --> 00:17:29,610 >> 我GOOGLE了哪裡 這個起源是從。 361 00:17:29,610 --> 00:17:33,150 而且很顯然四月的一個愚人節 日在幾十年前, 362 00:17:33,150 --> 00:17:36,415 有人認為這將是熱鬧 創建一個名為418一個新的狀態碼 363 00:17:36,415 --> 00:17:37,380 我是一個茶壺。 364 00:17:37,380 --> 00:17:40,760 合法,這個名字 代碼被稱為我是一個茶壺。 365 00:17:40,760 --> 00:17:43,670 >> 我忘了你要什麼頁 去實際上使這種顯示屏。 366 00:17:43,670 --> 00:17:47,955 但很顯然,你其實可以 得到他的代碼我 367 00:17:47,955 --> 00:17:51,400 一個茶壺不知何故 通過做一些事情。 368 00:17:51,400 --> 00:17:54,480 因此,有成百上千 數以百計的狀態代碼。 369 00:17:54,480 --> 00:17:56,730 >> 他們中有些人賺更多 感覺比其他人。 370 00:17:56,730 --> 00:18:01,430 但幾乎​​只是熟悉 特性的最常見的。 371 00:18:01,430 --> 00:18:04,090 請求的實體主體是 短而粗壯,很明顯。 372 00:18:04,090 --> 00:18:07,990 >> 所以有時也有更多的 比我可怕的錯誤是一個茶壺。 373 00:18:07,990 --> 00:18:11,210 但是,這是一個我猜 那種你希望打。 374 00:18:11,210 --> 00:18:14,130 但是,我不認為你會的。 375 00:18:14,130 --> 00:18:17,260 每個人都好就只是狀態 碼,請求,過程,製造 376 00:18:17,260 --> 00:18:19,155 確保信息傳遞正確? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> 所以,現在我們要轉變 成部分,今天一個有趣的部分, 379 00:18:26,120 --> 00:18:28,500 我們談一點關於HTML的地方。 380 00:18:28,500 --> 00:18:32,580 HTML,全部是超文本 標記語言。 381 00:18:32,580 --> 00:18:35,160 這只是標準的語言 用於創建所有網絡 382 00:18:35,160 --> 00:18:36,690 互聯網上的網頁。 383 00:18:36,690 --> 00:18:39,560 >> 因此,任何網頁,什麼是 你最喜歡的網頁? 384 00:18:39,560 --> 00:18:40,855 什麼是你最喜歡的網頁? 385 00:18:40,855 --> 00:18:41,771 >> 聽眾:[聽不清]。 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI彭:對不起? 388 00:18:43,090 --> 00:18:43,980 >> 聽眾:的tumblr。 389 00:18:43,980 --> 00:18:44,730 >> ANDI彭:的tumblr。 390 00:18:44,730 --> 00:18:46,800 這樣的tumblr被寫在HTML。 391 00:18:46,800 --> 00:18:50,700 因此,我們要真正去通過,並 玩弄一些這些東西 392 00:18:50,700 --> 00:18:51,980 以後。 393 00:18:51,980 --> 00:18:54,980 幾乎所有你 需要學習,要知道, 394 00:18:54,980 --> 00:18:58,540 寫HTML你也許可以 只是谷歌在互聯網上。 395 00:18:58,540 --> 00:19:04,490 >> HTML,它不是像C程序 在這裡您可以創建變量,做 396 00:19:04,490 --> 00:19:05,600 很酷的事情吧。 397 00:19:05,600 --> 00:19:08,747 它更多的只是,呵呵,這就是我 想要的東西出現在我的網站。 398 00:19:08,747 --> 00:19:10,080 而我只是打算把它研究。 399 00:19:10,080 --> 00:19:12,160 而且它會設置樣式。 400 00:19:12,160 --> 00:19:15,650 >> 所以HTML,從某種意義上說,它就像 格式化或模板語言。 401 00:19:15,650 --> 00:19:16,680 這是一個容易得多。 402 00:19:16,680 --> 00:19:19,030 這是一個更容易學習, 一個更容易寫 403 00:19:19,030 --> 00:19:21,450 比典型的編程 語言,很容易, 404 00:19:21,450 --> 00:19:24,310 非常用戶可訪問的,友好的。 405 00:19:24,310 --> 00:19:29,040 >> 因此,我們實際上要發揮 各地,我們自己寫的網頁今天。 406 00:19:29,040 --> 00:19:32,900 但是,在我們開始之前,我只是想 去了一些簡短的最佳實踐。 407 00:19:32,900 --> 00:19:35,660 由於HTML就是這樣一個簡單的 語言,因為即使 408 00:19:35,660 --> 00:19:39,012 如果你做一對夫婦的事情錯了, 它有時可能沒有注意到, 409 00:19:39,012 --> 00:19:41,970 我們要確保我們 實際上秉承了我們的最佳實踐 410 00:19:41,970 --> 00:19:44,490 以確保事情 可以繞來繞去,但 411 00:19:44,490 --> 00:19:49,660 並不總是會不會向右走 確保他們最小化。 412 00:19:49,660 --> 00:19:53,570 >> 因此,相當多,要確保 您關閉所有標籤 413 00:19:53,570 --> 00:19:54,737 你寫的HTML時。 414 00:19:54,737 --> 00:19:56,486 如果你打開 身體,確保你 415 00:19:56,486 --> 00:19:58,015 關閉它與身體某處。 416 00:19:58,015 --> 00:20:00,720 你要確保你的 網頁驗證通過 417 00:20:00,720 --> 00:20:02,070 什麼叫W3驗證。 418 00:20:02,070 --> 00:20:05,460 你可以谷歌,網上, 並有一個鏈接到它。 419 00:20:05,460 --> 00:20:07,820 >> 然後你要 單獨的HTML,這 420 00:20:07,820 --> 00:20:13,060 是你的標記語言來自你的風采, 這是CSS語言,大衛 421 00:20:13,060 --> 00:20:17,510 證明我們也 要發揮一點與講座。 422 00:20:17,510 --> 00:20:19,120 酷。 423 00:20:19,120 --> 00:20:23,500 所以,任何時候你想運行 HTML的CS50家電, 424 00:20:23,500 --> 00:20:26,240 我們要運行 程序調用了Apache, 425 00:20:26,240 --> 00:20:29,810 所有這只是一個內置的 Web服務器,每個人都在CS50 426 00:20:29,810 --> 00:20:31,410 訪問。 427 00:20:31,410 --> 00:20:35,700 我們稱之為apache50僅僅因為我們 喜歡叫在CS50的一切50。 428 00:20:35,700 --> 00:20:39,610 >> 所以,你開始的CS50網頁的方式 服務器是通過鍵入您的命令上 429 00:20:39,610 --> 00:20:42,860 行apache50啟動點。 430 00:20:42,860 --> 00:20:46,665 如果你想在任何結束它 的時候,你就apache50最終沒有點。 431 00:20:46,665 --> 00:20:47,910 而你只需要敲擊回車。 432 00:20:47,910 --> 00:20:50,810 它應該是標題在這裡很快。 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 是啊。 435 00:20:54,130 --> 00:20:58,110 所以,我只是要趕緊走了過來 一個非常簡單的網頁的一個例子。 436 00:20:58,110 --> 00:21:00,280 我們打算花 像10,15分鐘的上場 437 00:21:00,280 --> 00:21:04,008 各地編寫我們自己的網頁。 438 00:21:04,008 --> 00:21:05,320 確定。 439 00:21:05,320 --> 00:21:07,841 因此,這裡的IDE-- 每個人都可以看到了嗎? 440 00:21:07,841 --> 00:21:08,340 沒有,真的。 441 00:21:08,340 --> 00:21:11,400 在這裡,我將進行放大。 442 00:21:11,400 --> 00:21:15,850 >> 我剛剛得到這個簡單的模板 這裡沒有什麼實際的。 443 00:21:15,850 --> 00:21:20,660 我們只是要快速編寫 一個HTML程序中,我們只 444 00:21:20,660 --> 00:21:22,050 打招呼的世界。 445 00:21:22,050 --> 00:21:24,970 在C,現在我們那麼一回事 只是要做到這一點在HTML中。 446 00:21:24,970 --> 00:21:28,250 沒有人想實際只 嘗試給我的第一件事情,你 447 00:21:28,250 --> 00:21:31,870 必須放在一個HTML文檔? 448 00:21:31,870 --> 00:21:32,850 是啊。 449 00:21:32,850 --> 00:21:35,965 >> 聽眾:括號中,[聽不清]。 450 00:21:35,965 --> 00:21:36,590 ANDI彭:是的。 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 所以東西是非常獨特的,以 HTML即我們通常傳統 453 00:21:50,930 --> 00:21:56,080 請不要在其他命令不會遇到 線路電平編程語言 454 00:21:56,080 --> 00:21:59,890 是,我們實際上是 指定文件的類型 455 00:21:59,890 --> 00:22:01,987 這將是 在我們的代碼的頂部。 456 00:22:01,987 --> 00:22:04,570 因此,在這個instance--我想 這是正確的命令,對不對? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 是啊。 459 00:22:10,550 --> 00:22:14,860 在頂部,你只是想包括 括號內的爆炸DOCTYPE HTML只 460 00:22:14,860 --> 00:22:17,670 告訴您的計算機,嘿嘿,看出來了。 461 00:22:17,670 --> 00:22:20,050 而HTML文檔即將到來。 462 00:22:20,050 --> 00:22:22,250 然後我們怎麼想 開始了我們的文件? 463 00:22:22,250 --> 00:22:25,540 如果我們只是想打個招呼,有 網頁,打招呼的世界, 464 00:22:25,540 --> 00:22:26,915 我們怎麼去建設呢? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> 其實,讓我們轉向谷歌。 467 00:22:35,300 --> 00:22:36,910 我們可以真正做到這一點。 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 是啊。 470 00:22:43,670 --> 00:22:44,840 在那裡,我們走了。 471 00:22:44,840 --> 00:22:47,630 所以HTML。 472 00:22:47,630 --> 00:22:52,390 正如你所看到的,我的瀏覽器實際上是 自動造型這對我來說。 473 00:22:52,390 --> 00:22:56,010 >> 同樣的事情在C,當你 創建一個開放的大括號, 474 00:22:56,010 --> 00:22:59,020 您的瀏覽器自動 增加了在接近大括號。 475 00:22:59,020 --> 00:23:02,210 幸運的是,我們的IDE愛 這樣做對我們來說也是一樣。 476 00:23:02,210 --> 00:23:05,490 所以,現在我們可以種類型 一個標籤的開始, 477 00:23:05,490 --> 00:23:09,139 並且它會隨時告訴我們 記得鍵入標記的結束。 478 00:23:09,139 --> 00:23:10,680 我認為這需要資本。 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 然後,我們要添加,一如既往, 一個頭,這是冠軍。 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 我們只是想也許叫 這種招呼,然後身體。 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> 而且你去那裡。 485 00:23:36,310 --> 00:23:39,650 這實際上是我們的HTML文檔。 486 00:23:39,650 --> 00:23:45,030 這樣的方式,任何HTML文檔 總是稱呼in--同樣的事情 487 00:23:45,030 --> 00:23:46,720 與詮釋主作廢。 488 00:23:46,720 --> 00:23:49,600 你總是想有 HTML中打開和關閉標籤 489 00:23:49,600 --> 00:23:52,100 在你的代碼的頂部和底部。 490 00:23:52,100 --> 00:23:56,900 >> 你想擁有一個腦袋裡面 其中包含標題,只是什麼 491 00:23:56,900 --> 00:24:01,430 是要顯示你的網頁的標籤 頁,然後一個機構,它的內部 492 00:24:01,430 --> 00:24:04,120 實際上顯示的內容 無論你想做的事情。 493 00:24:04,120 --> 00:24:08,220 所以,如果你想實際運行 這一點,我要放大出來。 494 00:24:08,220 --> 00:24:12,740 實際上,你可以啟動 apache50啟動點。 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 酷。 497 00:24:16,150 --> 00:24:18,980 所以你可以看到,現在 此鏈接已彈出。 498 00:24:18,980 --> 00:24:21,940 它說你的網站是現在 可從下面的一些鏈接。 499 00:24:21,940 --> 00:24:25,910 所以我們所有的IDE擁有done-- 沒有IDE,sorry--是啊, 500 00:24:25,910 --> 00:24:33,280 我們的IDE所做的就是創建一個web 鏈接在其所有的網頁 501 00:24:33,280 --> 00:24:35,407 可以在服務器上被訪問。 502 00:24:35,407 --> 00:24:36,490 因此,讓我們來看看在這裡。 503 00:24:36,490 --> 00:24:40,240 >> 讓我們點擊這個,去hello.html的。 504 00:24:40,240 --> 00:24:42,895 而你看到一個非常簡單的 網頁為世界你好。 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 確定。 507 00:24:47,420 --> 00:24:50,513 我們真的要只 有everyone--是啊,這是怎麼回事? 508 00:24:50,513 --> 00:24:52,353 >> 觀眾:我有一個基本的問題。 509 00:24:52,353 --> 00:24:52,978 ANDI彭:是的。 510 00:24:52,978 --> 00:24:58,064 聽眾:你如何保存 文件為HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI彭:是的。 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 所以,如果我要創建一個新的文件, 如果我做的新文件,Untittle,如果我這樣做, 514 00:25:10,820 --> 00:25:14,390 section.html,咚, 這就是我要做的。 515 00:25:14,390 --> 00:25:15,363 >> 聽眾:[聽不清]? 516 00:25:15,363 --> 00:25:15,946 ANDI彭:沒有。 517 00:25:15,946 --> 00:25:16,660 聽眾:[聽不清]。 518 00:25:16,660 --> 00:25:17,240 ANDI彭:沒有。 519 00:25:17,240 --> 00:25:18,156 聽眾:[聽不清]。 520 00:25:18,156 --> 00:25:19,110 ANDI彭:是的。 521 00:25:19,110 --> 00:25:24,300 好看多了,在延伸 該文件是你的IDE中, 522 00:25:24,300 --> 00:25:27,840 它告訴計算機,即 告訴瀏覽器,嘿嘿,看出來了。 523 00:25:27,840 --> 00:25:30,480 這將是代碼 用這種語言編寫。 524 00:25:30,480 --> 00:25:34,240 因此,例如,在微軟 一句話,怎麼所有Word文檔 525 00:25:34,240 --> 00:25:37,070 有什麼擴展名結尾? 526 00:25:37,070 --> 00:25:39,830 .doc或.DOCX,對不對? 527 00:25:39,830 --> 00:25:42,299 >> 所有這些都指定到 您的操作系統,嘿嘿, 528 00:25:42,299 --> 00:25:43,840 你已經有了一個Word文檔來了。 529 00:25:43,840 --> 00:25:44,940 在Word中打開它。 530 00:25:44,940 --> 00:25:46,955 同樣的事情與PDF文件。 531 00:25:46,955 --> 00:25:49,650 它知道,哦,我需要 打開這個文件 532 00:25:49,650 --> 00:25:52,020 與Adobe Reader或Adobe Acrobat。 533 00:25:52,020 --> 00:25:56,130 >> 因此擴展操作 同樣的方式在您的計算機。 534 00:25:56,130 --> 00:26:00,750 如果您指定的代碼頁 被命名為HTML,那麼它知道, 535 00:26:00,750 --> 00:26:01,880 哦,你有HTML代碼。 536 00:26:01,880 --> 00:26:04,890 我打算把它當作HTML代碼。 537 00:26:04,890 --> 00:26:06,600 因此,它是在這個意義上超級智能。 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> 所以每個人,讓我們像10分鐘 而剛剛創造我們自己的網站。 540 00:26:18,730 --> 00:26:21,020 讓我們增加了可愛的東西。 541 00:26:21,020 --> 00:26:23,440 隨意說任何你想要的。 542 00:26:23,440 --> 00:26:27,890 我只是想確保 每個人的服務器是否正常運行 543 00:26:27,890 --> 00:26:31,220 我們免費之前,你到處理器集。 544 00:26:31,220 --> 00:26:33,490 因為如果你的服務器 不為pset的運行, 545 00:26:33,490 --> 00:26:34,847 這將是非常糟糕。 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> 我只是要漂浮和 看到每個人的工作。 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 怎麼樣了? 550 00:27:27,590 --> 00:27:29,048 >> 聽眾:我只是把我的電腦上。 551 00:27:29,048 --> 00:27:29,923 >> ANDI彭:這是確定的。 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> 聽眾:[聽不清]。 554 00:27:42,390 --> 00:27:44,284 >> ANDI彭:只要你的IDE。 555 00:27:44,284 --> 00:27:44,784 是啊。 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> 聽眾:[聽不清]。 558 00:27:55,910 --> 00:27:57,590 >> ANDI彭:這是確定的。 559 00:27:57,590 --> 00:27:59,491 >> 聽眾:[聽不清]。 560 00:27:59,491 --> 00:28:00,490 ANDI彭:完全罰款。 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 是每個人都訪問 他們的網絡服務器是否正常? 563 00:28:51,530 --> 00:28:52,970 是apache50運行是否正常? 564 00:28:52,970 --> 00:28:54,700 我覺得在一些 其他部分,我們 565 00:28:54,700 --> 00:28:58,790 曾與人沒有問題 能夠訪問該服務器。 566 00:28:58,790 --> 00:28:59,290 是啊。 567 00:28:59,290 --> 00:29:05,764 所以,你只要運行apache50 空間開始太空時期。 568 00:29:05,764 --> 00:29:06,680 聽眾:[聽不清]。 569 00:29:06,680 --> 00:29:07,610 ANDI彭:是的。 570 00:29:07,610 --> 00:29:08,294 好? 571 00:29:08,294 --> 00:29:09,210 >> 聽眾:[聽不清]。 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI彭:哦,好。 574 00:29:13,350 --> 00:29:14,808 所以,你應該有一個空格。 575 00:29:14,808 --> 00:29:15,425 所以apache50-- 576 00:29:15,425 --> 00:29:16,115 >> 聽眾:我做到了。 577 00:29:16,115 --> 00:29:17,661 >> ANDI彭:--start空間。 578 00:29:17,661 --> 00:29:18,660 聽眾:哦,空間點。 579 00:29:18,660 --> 00:29:20,110 ANDI彭:是的,空間點。 580 00:29:20,110 --> 00:29:23,230 你去那裡。 581 00:29:23,230 --> 00:29:25,490 於是,如果你有 創建的HTML頁面, 582 00:29:25,490 --> 00:29:28,560 那麼你可以直接進入 到它指定的鏈接。 583 00:29:28,560 --> 00:29:30,539 你應該能夠訪問它。 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> 每個人都能夠 訪問他們的網頁可以嗎? 586 00:29:37,876 --> 00:29:39,339 >> 聽眾:[聽不清]。 587 00:29:39,339 --> 00:29:40,380 ANDI彭:哦,沒關係。 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> 聽眾:[聽不清]。 590 00:29:44,964 --> 00:29:45,630 ANDI彭:是的。 591 00:29:45,630 --> 00:29:48,171 我覺得你其實可以打開 它你的瀏覽器,在瀏覽器內 592 00:29:48,171 --> 00:29:49,955 而不僅僅是你的IDE瀏覽器。 593 00:29:49,955 --> 00:29:51,580 是的,我想如果你複製和粘貼。 594 00:29:51,580 --> 00:29:53,920 >> 聽眾:然後 我們如何把它關掉? 595 00:29:53,920 --> 00:29:54,590 [聽不清] 596 00:29:54,590 --> 00:29:58,720 >> ANDI彭:是啊,你這樣做 apache50停止與無期。 597 00:29:58,720 --> 00:29:59,220 是啊。 598 00:29:59,220 --> 00:30:01,180 >> 聽眾:[聽不清]。 599 00:30:01,180 --> 00:30:02,768 >> ANDI彭:由於沒有時間。 600 00:30:02,768 --> 00:30:04,051 是啊。 601 00:30:04,051 --> 00:30:04,550 在那裡,我們走了。 602 00:30:04,550 --> 00:30:05,050 是啊。 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 我們正在創建自己的網頁。 605 00:30:09,855 --> 00:30:10,646 >> 聽眾:哦,爽。 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI彭:是的。 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> 觀眾:我有一個問題。 610 00:30:22,420 --> 00:30:25,294 所以阿帕奇50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI彭:50,是的。 612 00:30:26,731 --> 00:30:28,168 >> 聽眾:[聽不清]。 613 00:30:28,168 --> 00:30:29,130 >> ANDI彭:什麼? 614 00:30:29,130 --> 00:30:29,750 這是奇怪的。 615 00:30:29,750 --> 00:30:32,244 看,這就是問題的一種 這是發生之前。 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 確定。 618 00:30:38,730 --> 00:30:39,800 部分後來見我。 619 00:30:39,800 --> 00:30:42,320 因為我們有一些 問題與服務器。 620 00:30:42,320 --> 00:30:44,325 >> 而你想 確保你的服務器是 621 00:30:44,325 --> 00:30:45,700 在開始之前,PSET運行。 622 00:30:45,700 --> 00:30:47,800 因為你會需要它。 623 00:30:47,800 --> 00:30:48,300 是啊。 624 00:30:48,300 --> 00:30:51,299 是否有其他人還沒有被 能夠得到他們的服務器開始? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> 對於那些你們誰想要添加 額外的風格,以自己的網頁, 627 00:31:17,840 --> 00:31:20,450 我們其實可以做什麼 在講座大衛就很好, 628 00:31:20,450 --> 00:31:24,070 這是創建一個額外的樣式 片,這是一個點的CSS,層疊 629 00:31:24,070 --> 00:31:30,080 樣式表,實際上只是添加入。 630 00:31:30,080 --> 00:31:33,550 因此,例如,我剛剛創建 幾乎差不多的確切同一台 631 00:31:33,550 --> 00:31:37,180 大衛做了講座。 632 00:31:37,180 --> 00:31:39,220 您可以非常簡單,只是做全身。 633 00:31:39,220 --> 00:31:45,980 >> 你有所謂的標籤,其中 可應用於IDE任何部分 634 00:31:45,980 --> 00:31:48,650 你想在你的 實際為HTML頁面。 635 00:31:48,650 --> 00:31:54,890 所以頁面的主體,就 可以做文字居中對齊。 636 00:31:54,890 --> 00:31:58,110 然後我會創意 裡面的標籤叫做頂 637 00:31:58,110 --> 00:32:01,860 其中,我想這些東西 發生,分配一個更大的像素尺寸 638 00:32:01,860 --> 00:32:03,104 的字體。 639 00:32:03,104 --> 00:32:04,520 我想字體粗細要大膽。 640 00:32:04,520 --> 00:32:06,478 而我想要的顏色,以 是藍色的,只是隨心所欲 641 00:32:06,478 --> 00:32:08,570 價值觀,我決定選擇。 642 00:32:08,570 --> 00:32:10,870 我可以創建一個名為中間另一個標記。 643 00:32:10,870 --> 00:32:12,640 字體大小,使它有點小。 644 00:32:12,640 --> 00:32:17,730 然後,我可以創建另一個標籤 所謂的底部在哪裡我想要的字體大小 645 00:32:17,730 --> 00:32:20,900 甚至可以說仍然較小。 646 00:32:20,900 --> 00:32:25,630 >> 所以,幾乎這僅僅是例子 源代碼或源的樣式表的 647 00:32:25,630 --> 00:32:27,400 它很容易只是谷歌。 648 00:32:27,400 --> 00:32:31,560 如果你說,哦,我想我的字體 以斜體和深綠色, 649 00:32:31,560 --> 00:32:33,980 你也許可以谷歌, 然後它會告訴你 650 00:32:33,980 --> 00:32:37,590 適當的標籤或標識創建。 651 00:32:37,590 --> 00:32:41,670 這樣一來,這樣你實際上會 一種具有此在HTML文檔 652 00:32:41,670 --> 00:32:45,660 或者用它是所有你 做的,是在頭 653 00:32:45,660 --> 00:32:48,560 添加一個鏈接到樣式表。 654 00:32:48,560 --> 00:32:53,600 >> 所以,你可以只是鏈接的href等號 不管你的樣式表的名稱 655 00:32:53,600 --> 00:32:54,590 是。 656 00:32:54,590 --> 00:32:56,740 然後關係 是一個樣式表。 657 00:32:56,740 --> 00:33:00,700 因此,任何HTML文檔中,只要 因為你有這點CSS表, 658 00:33:00,700 --> 00:33:07,140 你應該能夠訪問 和具有屬性那裡。 659 00:33:07,140 --> 00:33:10,370 >> 因此,例如,在這裡,我只是 創建另一個例子網頁。 660 00:33:10,370 --> 00:33:15,680 這是歡迎CS50節 星期二下午2:00 3:30我。 661 00:33:15,680 --> 00:33:20,300 然後,我添加了一個可愛的形象, 我們可能應該能看到。 662 00:33:20,300 --> 00:33:24,620 >> 所以,如果你在這裡看看, 如果你去style.html, 663 00:33:24,620 --> 00:33:26,310 我們創建了一個網頁與小貓。 664 00:33:26,310 --> 00:33:29,420 由於小貓是真棒。 665 00:33:29,420 --> 00:33:33,570 因此,添加圖像僅僅是IMG SRC鏈接。 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> 差不多,如果有 任何類型的功能 668 00:33:38,310 --> 00:33:40,268 要添加到您的 website--所以我們可以說, 669 00:33:40,268 --> 00:33:43,290 要添加一個菜單 或搜索欄或類似 670 00:33:43,290 --> 00:33:46,450 一個image--只是谷歌如何做到這一點。 671 00:33:46,450 --> 00:33:48,277 而你只是撲通這種格式。 672 00:33:48,277 --> 00:33:50,110 你可以只是漂亮 多只加入。 673 00:33:50,110 --> 00:33:52,670 這是真的,真的很容易。 674 00:33:52,670 --> 00:33:55,014 >> 我們正在創造我們自己的 網頁現在。 675 00:33:55,014 --> 00:33:55,680 如果你想用於: 676 00:33:55,680 --> 00:33:56,580 >> 聽眾:[聽不清] 677 00:33:56,580 --> 00:33:57,470 >> ANDI彭:對不起? 678 00:33:57,470 --> 00:33:59,310 >> 聽眾:[聽不清]。 679 00:33:59,310 --> 00:34:01,340 >> ANDI彭:呵呵, DIV只是一個事業部 680 00:34:01,340 --> 00:34:04,370 告訴我說,哦,我有 某一段被稱為 681 00:34:04,370 --> 00:34:07,480 中間在我申請 我的CSS標籤,然後 682 00:34:07,480 --> 00:34:09,619 我的其他事業部的底部。 683 00:34:09,619 --> 00:34:10,785 這一切都在告訴你。 684 00:34:10,785 --> 00:34:12,743 因為這是很好的保持 東西整齊有序, 685 00:34:12,743 --> 00:34:16,304 因此程序知道究竟如何運行。 686 00:34:16,304 --> 00:34:18,929 並認為我可以複製粘貼此 到我的實際的瀏覽​​器也是如此。 687 00:34:18,929 --> 00:34:21,110 它應該是罰款。 688 00:34:21,110 --> 00:34:21,610 是啊。 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 耶。 691 00:34:25,989 --> 00:34:29,380 因此,如果每個人都希望只 嘗試創建一個網頁, 692 00:34:29,380 --> 00:34:32,169 我們將採取兩到三分鐘。 693 00:34:32,169 --> 00:34:34,460 我只是想確認 每個人的服務器正在運行 694 00:34:34,460 --> 00:34:36,941 家家都有一 想法如何做到這一點。 695 00:34:36,941 --> 00:34:38,774 如果你們想 拿出你的計算機。 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 仍然沒有工作? 698 00:34:45,635 --> 00:34:47,420 >> 聽眾:我只是[聽不清]。 699 00:34:47,420 --> 00:34:49,838 >> ANDI彭:也許嘗試更新50為好。 700 00:34:49,838 --> 00:34:51,392 是啊。 701 00:34:51,392 --> 00:34:52,308 聽眾:[聽不清]。 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI彭:是的。 704 00:35:18,990 --> 00:35:23,750 所以,你的方式開始新的 在IDE的Web服務器只是 705 00:35:23,750 --> 00:35:27,889 做apache50空間開始的空間點。 706 00:35:27,889 --> 00:35:30,430 我只是想確認 每個人的服務器運行正常。 707 00:35:30,430 --> 00:35:31,763 >> 聽眾:在這裡,在終端上? 708 00:35:31,763 --> 00:35:33,334 ANDI彭:是的。 709 00:35:33,334 --> 00:35:34,250 聽眾:[聽不清]。 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI彭:Apache的。 712 00:35:38,985 --> 00:35:42,010 其實,我認為你是 運行的東西了。 713 00:35:42,010 --> 00:35:43,145 是啊,你居然 運行不同的服務器。 714 00:35:43,145 --> 00:35:43,830 是啊,你是好。 715 00:35:43,830 --> 00:35:45,085 只要知道的工作,你真行。 716 00:35:45,085 --> 00:35:45,626 >> 聽眾:OK。 717 00:35:45,626 --> 00:35:47,615 ANDI彭:有兩家 方式來運行的服務器。 718 00:35:47,615 --> 00:35:49,990 所以只要方式之一 正在工作,它的所有權利。 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 我們將採取一分鐘 只是那種完成了 721 00:36:21,680 --> 00:36:25,280 任何的收尾 網頁你們想拍。 722 00:36:25,280 --> 00:36:26,830 >> 是每個人工作的方式? 723 00:36:26,830 --> 00:36:30,910 每個人的服務器 除了為你運行? 724 00:36:30,910 --> 00:36:32,210 我們會明白這一點。 725 00:36:32,210 --> 00:36:34,137 和HTML的非常簡單。 726 00:36:34,137 --> 00:36:35,220 所以,我認為我們都好。 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 是啊。 729 00:36:38,760 --> 00:36:41,070 我會回來的。 730 00:36:41,070 --> 00:36:42,797 >> 聽眾:[聽不清]。 731 00:36:42,797 --> 00:36:43,380 ANDI彭:OK。 732 00:36:43,380 --> 00:36:44,770 聽眾:所以這只是 開始加載。 733 00:36:44,770 --> 00:36:45,686 ANDI彭:不用擔心。 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 所以HTML,還有源代碼 會後,部分在網上。 736 00:36:52,680 --> 00:36:54,810 此外,大衛有一個整體 一群在網上也是如此。 737 00:36:54,810 --> 00:36:58,190 只是種瀏覽一下它 看到HTML頁面寫入。 738 00:36:58,190 --> 00:36:59,920 這是相當容易的。 739 00:36:59,920 --> 00:37:03,979 什麼,你不知道,你漂亮 簡單,只是谷歌,你是好。 740 00:37:03,979 --> 00:37:06,270 我只是想確保 你的服務器運行。 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> 聽眾:是否經常這樣做? 743 00:37:14,880 --> 00:37:16,421 >> ANDI彭:這是從來沒有發生在我身上。 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 我不知道這甚至有可能冬眠。 746 00:37:20,782 --> 00:37:22,516 >> 聽眾:[聽不清]。 747 00:37:22,516 --> 00:37:25,140 ANDI彭:我認為everyone-- 我的以前從未休眠。 748 00:37:25,140 --> 00:37:26,860 我不知道為什麼。 749 00:37:26,860 --> 00:37:27,566 這很奇怪。 750 00:37:27,566 --> 00:37:29,310 >> 聽眾:[聽不清]。 751 00:37:29,310 --> 00:37:30,643 >> ANDI彭:是你的冬眠? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> 聽眾:[聽不清]。 754 00:37:33,669 --> 00:37:34,335 ANDI彭:是的。 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 聽眾:這是確定的。 757 00:37:39,872 --> 00:37:40,622 因此,一旦它是開放的。 758 00:37:40,622 --> 00:37:41,760 ANDI彭:OK。 759 00:37:41,760 --> 00:37:43,940 我們會處理一些服務器 後段的問題。 760 00:37:43,940 --> 00:37:44,860 你應該罰款。 761 00:37:44,860 --> 00:37:47,950 雖然,你要確保你 讓你離開之前他們解決。 762 00:37:47,950 --> 00:37:49,380 因為如果你的服務器的 沒有運行,那麼你 763 00:37:49,380 --> 00:37:52,004 不會是能夠做到的 PSET,像任何部分處理器集的。 764 00:37:52,004 --> 00:37:54,200 所以,你要確保 這是的工作。 765 00:37:54,200 --> 00:37:54,831 酷。 766 00:37:54,831 --> 00:37:55,330 好的。 767 00:37:55,330 --> 00:37:56,490 告別小貓。 768 00:37:56,490 --> 00:37:59,670 我花了很長時間尋找 這小貓的圖片穿上。 769 00:37:59,670 --> 00:38:02,272 所以,反正。 770 00:38:02,272 --> 00:38:04,950 >> 聽眾:[聽不清]。 771 00:38:04,950 --> 00:38:05,770 >> ANDI彭:對不起? 772 00:38:05,770 --> 00:38:07,345 >> 聽眾:[聽不清]。 773 00:38:07,345 --> 00:38:08,970 ANDI彭:我認為這是在網站上。 774 00:38:08,970 --> 00:38:11,064 像規範? 775 00:38:11,064 --> 00:38:12,020 >> 聽眾:[聽不清]。 776 00:38:12,020 --> 00:38:16,080 我認為,規範只是 網上七個星期 777 00:38:16,080 --> 00:38:18,850 我想,這就是所謂的pset6,甚至 雖然我們是在七個星期,這 778 00:38:18,850 --> 00:38:19,641 是位計算。 779 00:38:19,641 --> 00:38:23,130 聽眾:但我的意思是,如果你 想看看at--如果你 780 00:38:23,130 --> 00:38:28,666 想拉我們的版本 該網站從我們斷絕? 781 00:38:28,666 --> 00:38:31,820 所以像server.c是處理器集,對不對? 782 00:38:31,820 --> 00:38:36,514 如果你想看看這個, 怎麼樣它檢查出來? 783 00:38:36,514 --> 00:38:38,680 ANDI彭:哦,所以實際上 處理器集,所有我們正在做的 784 00:38:38,680 --> 00:38:41,405 這裡implementing--在這裡, 我去了這個簡單。 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 因此,對於每一個人,這只是得到 第,你們是幸運的。 787 00:38:47,020 --> 00:38:49,340 很少有材料 實際支付的今天。 788 00:38:49,340 --> 00:38:52,585 >> 我只是要在接下來的 20分鐘去在PSET幫助。 789 00:38:52,585 --> 00:38:55,210 因為有一些有用的 功能,這將有助於你的生活。 790 00:38:55,210 --> 00:38:57,501 並希望,我們會出 這裡還有20分鐘。 791 00:38:57,501 --> 00:38:58,360 確定。 792 00:38:58,360 --> 00:39:00,252 >> 所以pset7是錯誤的。 793 00:39:00,252 --> 00:39:02,460 儘管我們是在週末 七,它實際上pset6。 794 00:39:02,460 --> 00:39:04,220 我會改變這種狀況。 795 00:39:04,220 --> 00:39:07,550 我們所要做的pset6 正在創建的web服務器。 796 00:39:07,550 --> 00:39:09,010 這聽起來超級嚇人。 797 00:39:09,010 --> 00:39:11,010 >> 尤其是對那些 你們誰已經 798 00:39:11,010 --> 00:39:14,530 看了看分配代碼, 有很多代碼,大量的代碼。 799 00:39:14,530 --> 00:39:15,570 但完全確定。 800 00:39:15,570 --> 00:39:17,750 因為細節問題 實際創建的一部分 801 00:39:17,750 --> 00:39:20,140 服務器是由我們來做。 802 00:39:20,140 --> 00:39:22,090 所有你真的問 在此做PSET 803 00:39:22,090 --> 00:39:25,350 只是做一些字符串操作 在文件I / O。它實際上 804 00:39:25,350 --> 00:39:27,570 像相當簡單。 805 00:39:27,570 --> 00:39:30,830 >> 所以,當你第一次下載that--誰 這裡實際上已經下載 806 00:39:30,830 --> 00:39:32,540 處理器集,並採取看看嗎? 807 00:39:32,540 --> 00:39:33,040 好的。 808 00:39:33,040 --> 00:39:33,540 是啊。 809 00:39:33,540 --> 00:39:36,042 還有像500行代碼 那你要像, 810 00:39:36,042 --> 00:39:36,750 到底是怎麼回事? 811 00:39:36,750 --> 00:39:38,177 而這完全罰款。 812 00:39:38,177 --> 00:39:39,760 請確保你看穿行。 813 00:39:39,760 --> 00:39:41,610 因為大衛和 - 我不知道。 814 00:39:41,610 --> 00:39:43,870 我不認為這是Zamyla的,這一個。 815 00:39:43,870 --> 00:39:47,040 但我認為其他一些 穿行測試是相當 816 00:39:47,040 --> 00:39:49,510 在以下方面有所幫助 只是讓你知道 817 00:39:49,510 --> 00:39:51,780 到底是怎麼回事你的代碼中。 818 00:39:51,780 --> 00:39:53,330 >> 而這是完全確定。 819 00:39:53,330 --> 00:39:57,860 由於四大功能,你是 要求執行反倒 820 00:39:57,860 --> 00:39:59,720 零做實際的服務器。 821 00:39:59,720 --> 00:40:02,590 他們所要做的只是 分析不同的字符串, 822 00:40:02,590 --> 00:40:05,780 通過字符串搜索, 以確保一切都在做 823 00:40:05,780 --> 00:40:07,750 什麼他們應該做的事情。 824 00:40:07,750 --> 00:40:11,200 >> 因此,為了這種效果,也有 一些非常有用的功能, 825 00:40:11,200 --> 00:40:13,630 尤其是對字符串 操控,是我們都應該 826 00:40:13,630 --> 00:40:15,879 去了,我認為我最好 對你們非常有用 827 00:40:15,879 --> 00:40:19,130 試圖處理器集之前學習。 828 00:40:19,130 --> 00:40:23,350 而且他們都包含 在您的文件string.h庫。 829 00:40:23,350 --> 00:40:25,980 有可能是更有用 我沒有在這裡包含的功能, 830 00:40:25,980 --> 00:40:30,740 因為我要么不使用它們或 也許我只是不知道它們的存在。 831 00:40:30,740 --> 00:40:32,440 >> 隨意通過student.h一目了然。 832 00:40:32,440 --> 00:40:36,460 因為那裡將是一個很大 的功能,這些功能非常有用的。 833 00:40:36,460 --> 00:40:43,050 因此,六,我用的最多的我 當我在過去的一周做PSET 834 00:40:43,050 --> 00:40:49,620 是的strtok,和strchr,strrcher, 的strstr,strcasecmp,和strcpy。 835 00:40:49,620 --> 00:40:53,060 這樣一來,最後兩個看似 非常熟悉你最。 836 00:40:53,060 --> 00:40:56,910 海峽情況相比,它是所有比較 字符串檢查它們是否相等, 837 00:40:56,910 --> 00:40:58,110 包括大小寫。 838 00:40:58,110 --> 00:41:01,430 和strcpy只是複製 一根弦到緩衝區中。 839 00:41:01,430 --> 00:41:04,430 >> 所以這兩個應該非常 熟悉你們在這一點上。 840 00:41:04,430 --> 00:41:07,100 因為我們已經使用了他們很多, 特別是對於最後的pset。 841 00:41:07,100 --> 00:41:10,734 但前四也許 你有沒有看到,直到如今。 842 00:41:10,734 --> 00:41:12,400 但是,我要只是穿行其中。 843 00:41:12,400 --> 00:41:15,620 因為他們將讓你的生命 真的,真的很容易for--不容易, 844 00:41:15,620 --> 00:41:19,830 但對於很多這個即將到來的pset容易。 845 00:41:19,830 --> 00:41:20,420 >> 確定。 846 00:41:20,420 --> 00:41:27,720 所以字符* strtok函數,這是功能 定義此功能包含 847 00:41:27,720 --> 00:41:31,050 在字符串,H庫。 848 00:41:31,050 --> 00:41:34,340 如果您將得到字符的輸入* 字符串,它只是一個字符串, 849 00:41:34,340 --> 00:41:38,220 或者常量的char * deliminator,DELIM的簡稱, 850 00:41:38,220 --> 00:41:42,410 所有它做的是打破了較大 字符串轉換為一系列的我們稱之為 851 00:41:42,410 --> 00:41:45,730 令牌由一定值分隔。 852 00:41:45,730 --> 00:42:03,340 因此,從某種意義上說,如果我要奉獻 你section.7.php,這是一個字符串。 853 00:42:03,340 --> 00:42:09,520 >> 因此,這將是如果我是通過 在本作我的海峽,我的char *海峽, 854 00:42:09,520 --> 00:42:18,870 如果我的deliminator了點,這一切 會做的是通過字符串搜索。 855 00:42:18,870 --> 00:42:22,790 並在第一時間就看到一個點, 它只是返回指針 856 00:42:22,790 --> 00:42:25,830 對發現的最後一個令牌 在此之前的字符串。 857 00:42:25,830 --> 00:42:27,230 因此,這將在這裡去。 858 00:42:27,230 --> 00:42:30,580 >> 而且它只是給我7.php。 859 00:42:30,580 --> 00:42:34,070 如果我要打電話 功能更多的時間, 860 00:42:34,070 --> 00:42:37,580 它會給我只是.PHP。 861 00:42:37,580 --> 00:42:41,540 所以,這一切功能是做 被打破了較大的字符串 862 00:42:41,540 --> 00:42:44,620 根據成較小的字符串 你在尋找什麼。 863 00:42:44,620 --> 00:42:46,670 >> 因此,例如,在 你的樣子了功能 864 00:42:46,670 --> 00:42:49,895 如果你想看看什麼 某些字符來約 865 00:42:49,895 --> 00:42:54,280 或者點發生或擴展發生, 這個功能將是相當有用的。 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 是啊。 868 00:42:59,010 --> 00:42:59,510 無後顧之憂。 869 00:42:59,510 --> 00:43:01,339 這都將be--是啊,這是怎麼回事? 870 00:43:01,339 --> 00:43:07,087 >> 聽眾:所以在第一線, 如果我們使用這個例子中, 871 00:43:07,087 --> 00:43:09,504 什麼將我們插入了嗎? 872 00:43:09,504 --> 00:43:10,170 ANDI彭:是的。 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 你只需撥打一個 strtok在字符串逗號DELIM。 875 00:43:25,640 --> 00:43:30,260 而字符串等於section.7.php。 876 00:43:30,260 --> 00:43:35,244 然後你DELIM 可以等於只是點綴。 877 00:43:35,244 --> 00:43:36,654 >> 聽眾:OK。 878 00:43:36,654 --> 00:43:39,010 >> ANDI彭:是的。 879 00:43:39,010 --> 00:43:41,266 就這樣。 880 00:43:41,266 --> 00:43:43,890 所有這些功能都相當 類似的,當我們通過他們去。 881 00:43:43,890 --> 00:43:45,514 他們只是略有不同的事情。 882 00:43:45,514 --> 00:43:49,530 但是,他們都去 讓你的生活輕鬆了許多。 883 00:43:49,530 --> 00:43:53,940 第二個功能,這其中的喜歡 超級,超級,超級重要的, 884 00:43:53,940 --> 00:43:58,254 是the--托起。 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> 哎呀。 887 00:44:08,730 --> 00:44:13,810 和strchr搜索第一 occurrence--實際上,是的。 888 00:44:13,810 --> 00:44:16,385 和strchr是功能 我絕對只是走過去。 889 00:44:16,385 --> 00:44:18,260 所以忽略了我說的話 用於第一功能。 890 00:44:18,260 --> 00:44:20,980 它實際上是所謂的和strchr。 891 00:44:20,980 --> 00:44:24,840 >> 那麼這裡會發生的事情是,如果 給您提供一個字符串的字符C, 892 00:44:24,840 --> 00:44:28,660 它只是給 你不管是什麼樣。 893 00:44:28,660 --> 00:44:29,230 是啊。 894 00:44:29,230 --> 00:44:33,700 所以,把它當做海峽,這 是一個字符串,CHR為char。 895 00:44:33,700 --> 00:44:38,621 因此,所有你想要做的是搜索 對於其中一個char是一個字符串中。 896 00:44:38,621 --> 00:44:41,120 所以它搜索第一 發生的字符的 897 00:44:41,120 --> 00:44:43,601 c。在字符串str。 898 00:44:43,601 --> 00:44:46,463 >> 聽眾:[聽不清]。 899 00:44:46,463 --> 00:44:48,380 >> ANDI彭:是的。 900 00:44:48,380 --> 00:44:51,230 然後,如果它沒有找到 它,它會返回NULL。 901 00:44:51,230 --> 00:44:54,313 因此,一些那將是非常 為你們做處理器集有用 902 00:44:54,313 --> 00:44:59,030 比如說,如果你正在尋找一種 擴展像.DOCX就一個字 903 00:44:59,030 --> 00:45:04,740 文檔或.PDF為PDF文檔, 有種你可以用它來看看 904 00:45:04,740 --> 00:45:08,720 無論什麼是繼 你看一個點,對每一次? 905 00:45:08,720 --> 00:45:11,880 因此相當多,如果你 運行通過的功能, 906 00:45:11,880 --> 00:45:13,610 如果它返回NULL, 那麼你知道它 907 00:45:13,610 --> 00:45:17,292 沒有發現它的點,這意味著這 顯然不是有效的文件擴展名。 908 00:45:17,292 --> 00:45:19,000 或者,如果它返回 什麼,你就知道 909 00:45:19,000 --> 00:45:21,940 這將返回任何的 實際上後延伸。 910 00:45:21,940 --> 00:45:24,190 所以,那些你們誰了 開始尋找通過查找 911 00:45:24,190 --> 00:45:28,640 和解析,這一功能的 將是超級有用。 912 00:45:28,640 --> 00:45:32,010 因此,我們實際上會 證明使用此。 913 00:45:32,010 --> 00:45:36,670 >> 為什麼你們不嘗試寫一 功能布爾句話的char * s表示 914 00:45:36,670 --> 00:45:39,610 只是如果s是返回true 句子,否則為假。 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 因此提示,你會 以可能使用和strchr。 917 00:45:46,830 --> 00:45:50,420 或者你在剛剛搜索 串為一定的字符。 918 00:45:50,420 --> 00:45:54,950 所以,在一個句子, 什麼分隔句子 919 00:45:54,950 --> 00:45:57,510 從非句, 有什麼具體的人物? 920 00:45:57,510 --> 00:45:58,260 聽眾:一個空格。 921 00:45:58,260 --> 00:45:59,343 ANDI彭:一個空間,對不對? 922 00:45:59,343 --> 00:46:03,354 所以,我們怎麼可能會 希望這個函數,在做什麼? 923 00:46:03,354 --> 00:46:04,290 >> 聽眾:[聽不清]。 924 00:46:04,290 --> 00:46:07,623 >> ANDI彭:我們將要和strchr 字符串空間的外觀。 925 00:46:07,623 --> 00:46:11,330 因為如果它返回的東西,那麼 我們知道,這一定是一個句子。 926 00:46:11,330 --> 00:46:14,510 這意味著,我們必須 在這個串的空間。 927 00:46:14,510 --> 00:46:17,660 >> 如果沒有空間,那麼我們就知道 這,哎,你猜它不是一個字符串。 928 00:46:17,660 --> 00:46:20,060 這可能只是一個很長的單詞。 929 00:46:20,060 --> 00:46:23,242 所以,我給你們一對夫婦 分鐘寫此功能。 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 是啊。 932 00:46:45,874 --> 00:46:47,970 >> 聽眾:你得到 此字符串從用戶? 933 00:46:47,970 --> 00:46:48,440 >> ANDI彭:是的。 934 00:46:48,440 --> 00:46:49,565 所以,這只是一個功能。 935 00:46:49,565 --> 00:46:54,586 所以,想像你的主函數中 你已經have--讓我們去這裡。 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 確定。 938 00:47:00,540 --> 00:47:05,270 所以我寫了這個節目裡 我有我的主要功能在哪裡 939 00:47:05,270 --> 00:47:07,432 我剛剛創建了兩個字符串。 940 00:47:07,432 --> 00:47:09,890 第一個是嗨,我的名字 是Andi--顯然,一個句子。 941 00:47:09,890 --> 00:47:13,240 我的第二個就是 岸堤,顯然不是一句。 942 00:47:13,240 --> 00:47:18,390 >> 所以我跑這兩個的 通過這個功能串。 943 00:47:18,390 --> 00:47:20,540 我想你們寫寒句。 944 00:47:20,540 --> 00:47:23,380 而我保存了這些值, 然後只需打印出來。 945 00:47:23,380 --> 00:47:26,549 因此,認為該用戶是 要傳遞一個字符串。 946 00:47:26,549 --> 00:47:29,590 然後,你要基本上 弄清楚,如果它是一個句子或不 947 00:47:29,590 --> 00:47:31,131 並返回true或false相應。 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> 如果你們想給 豎起大拇指或抬起頭來,點頭, 950 00:48:45,200 --> 00:48:49,080 是任何人都已經準備好開始 這一點,那會是不錯的。 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 也許就像30多秒? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 好的。 955 00:50:50,070 --> 00:50:52,870 讓我們來看看,如果你可以試試 寫這個功能。 956 00:50:52,870 --> 00:50:57,480 >> 所以,偽coding--我只是要 通過這個,現在那種走。 957 00:50:57,480 --> 00:51:00,570 好看多了,我們知道了 函數,我們需要使用。 958 00:51:00,570 --> 00:51:04,390 我們將調用該函數 我們的字符串和搜索一空。 959 00:51:04,390 --> 00:51:08,682 如果返回的東西,那麼我們必須 知道這一點,顯然,這是一個句子。 960 00:51:08,682 --> 00:51:09,640 因為有空間。 961 00:51:09,640 --> 00:51:10,930 然後,我們將返回true。 962 00:51:10,930 --> 00:51:12,310 否則,我們將返回false。 963 00:51:12,310 --> 00:51:14,393 沒有人想給 我的第一行代碼 964 00:51:14,393 --> 00:51:16,890 我們實際上是要 用寫? 965 00:51:16,890 --> 00:51:19,680 它實際上是最難 代碼行也是如此。 966 00:51:19,680 --> 00:51:21,026 是啊。 967 00:51:21,026 --> 00:51:28,942 >> 聽眾:如果strtok在S-- 968 00:51:28,942 --> 00:51:29,900 ANDI彭:就和strchr。 969 00:51:29,900 --> 00:51:35,354 聽眾:[插入VOICES] 空間不等於空。 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI彭:酷。 972 00:51:40,710 --> 00:51:41,470 完全正確。 973 00:51:41,470 --> 00:51:43,200 每個人都明白,第一行? 974 00:51:43,200 --> 00:51:46,110 我們要調用的strstr, 這是一個函數,搜索 975 00:51:46,110 --> 00:51:51,830 字符串s為空字符。 976 00:51:51,830 --> 00:51:56,010 而如果它發現它,它會 返回一個指向哪裡是。 977 00:51:56,010 --> 00:51:58,500 >> 如果沒有找到它, 它會返回NULL。 978 00:51:58,500 --> 00:52:02,530 所以,如果它返回任何東西比其他 NULL,那麼我們就知道它找到了一個空間。 979 00:52:02,530 --> 00:52:03,553 這是否有意義? 980 00:52:03,553 --> 00:52:04,090 酷。 981 00:52:04,090 --> 00:52:04,590 好的。 982 00:52:04,590 --> 00:52:08,246 因此,如果我們知道它的發現一個 空間,我們怎麼想幹什麼? 983 00:52:08,246 --> 00:52:09,162 聽眾:返回true。 984 00:52:09,162 --> 00:52:09,787 ANDI彭:是的。 985 00:52:09,787 --> 00:52:11,940 返回true。 986 00:52:11,940 --> 00:52:15,034 然後,有人要 完成了功能給我嗎? 987 00:52:15,034 --> 00:52:16,300 是啊。 988 00:52:16,300 --> 00:52:19,720 否則,就這樣。 989 00:52:19,720 --> 00:52:20,780 而嘗試編譯這一點。 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> 是啊。 992 00:52:28,000 --> 00:52:33,099 所以當你們可以從看 輸出,記得布爾用C 993 00:52:33,099 --> 00:52:34,390 總是表示二進制。 994 00:52:34,390 --> 00:52:35,100 1是真實的。 995 00:52:35,100 --> 00:52:36,350 0是假的。 996 00:52:36,350 --> 00:52:39,720 >> 如果我們運行這個 上串的一個,函數 997 00:52:39,720 --> 00:52:42,900 是嗨,我的名字的Andi-- 顯然,一個sentence--結果 998 00:52:42,900 --> 00:52:45,700 打印輸出為1,這是真的。 999 00:52:45,700 --> 00:52:48,420 第二個,這僅僅是 總之,結果打印出來 1000 00:52:48,420 --> 00:52:50,630 為0,這是假的。 1001 00:52:50,630 --> 00:52:54,820 每個人都清楚的那種對如何 這個函數寫? 1002 00:52:54,820 --> 00:52:55,800 是啊。 1003 00:52:55,800 --> 00:52:59,770 >> 聽眾:可我們也做代替, 不等於沒有,等於等於0, 1004 00:52:59,770 --> 00:53:03,677 因此,它是等於? 1005 00:53:03,677 --> 00:53:04,260 ANDI彭:沒有。 1006 00:53:04,260 --> 00:53:07,480 因為和strchr是一個功能。 1007 00:53:07,480 --> 00:53:09,940 我要回本。 1008 00:53:09,940 --> 00:53:14,624 那麼什麼是返回類型 我們strchr函數? 1009 00:53:14,624 --> 00:53:15,332 聽眾:哦,好。 1010 00:53:15,332 --> 00:53:15,800 或者為null。 1011 00:53:15,800 --> 00:53:16,466 >> ANDI彭:是的。 1012 00:53:16,466 --> 00:53:20,890 這是一個char *,告訴我,無論 這個函數會返回, 1013 00:53:20,890 --> 00:53:22,090 這將是一個指針。 1014 00:53:22,090 --> 00:53:24,860 無論是指針將是 指著其中,它的發現是, 1015 00:53:24,860 --> 00:53:27,550 或者它會返回 一個指針為NULL。 1016 00:53:27,550 --> 00:53:30,930 在這兩種情況下,這是怎麼回事 返回的指針的東西。 1017 00:53:30,930 --> 00:53:34,354 >> 所以,如果你要畫上等號 這等於,等於0, 1018 00:53:34,354 --> 00:53:36,020 你會得到一個編譯錯誤。 1019 00:53:36,020 --> 00:53:37,645 因為它會返回一個指針。 1020 00:53:37,645 --> 00:53:40,240 而你要嘗試 指針進行比較,以一個整數。 1021 00:53:40,240 --> 00:53:42,515 和計算機的不 會喜歡這一點。 1022 00:53:42,515 --> 00:53:45,630 是的,沒錯。 1023 00:53:45,630 --> 00:53:46,540 酷。 1024 00:53:46,540 --> 00:53:47,525 每個人都好? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> 其次,我們將去 在一個函數調用的strstr。 1027 00:53:59,770 --> 00:54:02,020 不用擔心,如果這些 功能混淆你。 1028 00:54:02,020 --> 00:54:03,750 他們混淆了我。 1029 00:54:03,750 --> 00:54:07,250 因此,你們可以看到, 他們所有的聲音幾乎相同。 1030 00:54:07,250 --> 00:54:10,400 只是當你感到困惑, 拉起string.h中圖書館。 1031 00:54:10,400 --> 00:54:13,290 而且你們可以排序 通過一個人的那個。 1032 00:54:13,290 --> 00:54:18,910 >> 所以的strstr,所有這些都搜索 一個字符串完全是另外一個字符串。 1033 00:54:18,910 --> 00:54:21,980 那麼,和strchr只是搜索 為單個字符, 1034 00:54:21,980 --> 00:54:24,090 搜索的strstr為整個字符串。 1035 00:54:24,090 --> 00:54:30,440 所以我想看看的,我不 知道了,嗨,我的名字是安迪。 1036 00:54:30,440 --> 00:54:32,490 和我最好的朋友的名字也安迪。 1037 00:54:32,490 --> 00:54:37,180 >> 如果我想看看在這個 句子安迪的整個字, 1038 00:54:37,180 --> 00:54:39,930 我的針本來 你要尋找什麼的。 1039 00:54:39,930 --> 00:54:43,440 而你的草垛是什麼 你正在尋找入。 1040 00:54:43,440 --> 00:54:47,050 所以,如果你正在尋找一個 在句子中特定的詞, 1041 00:54:47,050 --> 00:54:48,800 這個詞將是你的針。 1042 00:54:48,800 --> 00:54:51,397 然後是句子本身 將是你的幹草堆。 1043 00:54:51,397 --> 00:54:53,230 所以它只是搜索 第一次出現 1044 00:54:53,230 --> 00:54:55,063 串針 在字符串草垛。 1045 00:54:55,063 --> 00:54:57,140 它返回指針 在第一個出現。 1046 00:54:57,140 --> 00:55:00,510 除外,記住在這種情況下,它是 整個字符串的第一次出現 1047 00:55:00,510 --> 00:55:02,510 您正在搜索 為,不只是一個字符。 1048 00:55:02,510 --> 00:55:04,676 >> 所以,這幾乎是 同樣的事情功能 1049 00:55:04,676 --> 00:55:09,100 我們只是做了,只需用 多一點特異性。 1050 00:55:09,100 --> 00:55:12,730 因為你正在尋找 不是只有一個性格比較。 1051 00:55:12,730 --> 00:55:16,310 以及使用是完全相同 因為我們只是做了一個。 1052 00:55:16,310 --> 00:55:18,070 每個人都用這個好不好? 1053 00:55:18,070 --> 00:55:20,250 確定。 1054 00:55:20,250 --> 00:55:23,560 >> 最後一個我們要去 以上是strrchr,這是不 1055 00:55:23,560 --> 00:55:26,320 混淆或的strstr與和strchr。 1056 00:55:26,320 --> 00:55:27,890 strrchr在有一個額外的河 1057 00:55:27,890 --> 00:55:29,140 要小心,當你打字。 1058 00:55:29,140 --> 00:55:33,851 你可能會發現自己包括 一個額外的R或不包括R, 1059 00:55:33,851 --> 00:55:35,850 然後你的函數 是得了行不通的。 1060 00:55:35,850 --> 00:55:37,183 而且你會感到困惑。 1061 00:55:37,183 --> 00:55:40,150 要小心,你拼寫 所有這些功能的權利。 1062 00:55:40,150 --> 00:55:43,770 >> 所以strrchr是確切的 同樣的事情,和strchr 1063 00:55:43,770 --> 00:55:47,480 但它會搜索不是第一次 發生特定的字符, 1064 00:55:47,480 --> 00:55:49,350 而最後出現的位置。 1065 00:55:49,350 --> 00:55:52,800 因此,在這個意義上, 它幾乎是完全一樣的。 1066 00:55:52,800 --> 00:55:54,620 但是,代替移動 轉發在一個字符串, 1067 00:55:54,620 --> 00:55:57,230 你會被感動 向後的字符串。 1068 00:55:57,230 --> 00:56:00,510 同樣的事情,你只是 搜索以不同的順序。 1069 00:56:00,510 --> 00:56:04,690 >> 所以這可能是超好, 為您查找超好用 1070 00:56:04,690 --> 00:56:07,490 功能,第一 功能上的pset中。 1071 00:56:07,490 --> 00:56:12,710 讓我們假設我們需要寫一個 無效的擴展功能中,我們 1072 00:56:12,710 --> 00:56:17,850 通過一個恆定的char *文件名, 只是一個字符串,一個文件名, 1073 00:56:17,850 --> 00:56:21,370 這需要在該名稱並打印 出該文件的擴展名。 1074 00:56:21,370 --> 00:56:26,520 因此,舉例來說,如果我 通過pset7.zip的字符串中, 1075 00:56:26,520 --> 00:56:30,004 它會打印出剛 延伸,這是.ZIP。 1076 00:56:30,004 --> 00:56:31,920 而這種將工作 任何一種延伸, 1077 00:56:31,920 --> 00:56:38,290 .DOCX的Word或.pdf格式為PDF 文件或.html的HTML文件。 1078 00:56:38,290 --> 00:56:40,425 好看多了,寫 功能,可以做到這一點。 1079 00:56:40,425 --> 00:56:42,300 實際上,我要 切換到IDE中。 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 它不是load--我們走吧。 1082 00:56:56,740 --> 00:57:00,990 >> 因此,所有我所做的是 創建一個char *,第一串, 1083 00:57:00,990 --> 00:57:01,930 所謂pset7.zip。 1084 00:57:01,930 --> 00:57:04,530 我要去進行放大。 1085 00:57:04,530 --> 00:57:08,520 我創建了一個第二個字符串 所謂finalpaper.docx。 1086 00:57:08,520 --> 00:57:12,649 而給我寫一個函數,當 所謂打算只是打印出來 1087 00:57:12,649 --> 00:57:13,690 文件擴展名。 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 也許需要幾分鐘時間思考 如何你要做到這一點。 1090 00:57:19,660 --> 00:57:22,510 稍微更具挑戰性 比最後一個, 1091 00:57:22,510 --> 00:57:24,770 但用法差不多 完全一樣。 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 是啊。 1094 00:57:30,170 --> 00:57:37,540 所以寫一個函數調用擴展 即,如果我給的文件,你的名字, 1095 00:57:37,540 --> 00:57:41,340 如果我給你pset7.zip--我 希望你能打印出剛剛的.zip。 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 如果我給你喜歡finalpaper.docx, 剛打印出的.docx, 1098 00:57:49,890 --> 00:57:51,538 任何文件的只是擴展。 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> 這實際上只 採用兩行代碼。 1101 00:59:07,790 --> 00:59:10,692 因此,嘗試,如果你看 也許可以做到這一點在這一點。 1102 00:59:10,692 --> 00:59:12,400 實際上,它只 需要一行代碼。 1103 00:59:12,400 --> 00:59:14,074 但兩行可能是更標準。 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 什麼功能是我們可能 會想打電話? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> 聽眾:strrchr。 1108 00:59:26,260 --> 00:59:27,343 >> ANDI彭:strrchr吧。 1109 00:59:27,343 --> 00:59:29,570 因為我們正在尋找 從右邊左邊。 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 我沒有給你們 像這樣的一個例子, 1112 00:59:33,940 --> 00:59:38,870 但如果我給你的一個示例 www.apple.com,我只是想 1113 00:59:38,870 --> 00:59:43,005 。com的,它會是其中的例子 你要撥打的最後一個實例 1114 00:59:43,005 --> 00:59:44,630 這一時期,而不是​​第一個,對不對? 1115 00:59:44,630 --> 00:59:47,470 如果你是電話和strchr,它 就已經給你的apple.com。 1116 00:59:47,470 --> 00:59:49,966 >> 如果你叫strrchr,它 會給你的.COM。 1117 00:59:49,966 --> 00:59:53,062 所以要小心哪些 ways--在我的例子, 1118 00:59:53,062 --> 00:59:55,520 你很可能可以有 只是寫它用,和strchr, 1119 00:59:55,520 --> 00:59:57,130 因為只有一個點。 1120 00:59:57,130 --> 00:59:59,790 但在另一些情況下, 這可能不是這樣的。 1121 00:59:59,790 --> 01:00:04,960 所以總是試圖設計 您的代碼很好,所以that--是嗎? 1122 01:00:04,960 --> 01:00:07,365 >> 聽眾:所以在 比如你剛才說的, 1123 01:00:07,365 --> 01:00:11,760 當你strrchr它會 給你.com或只是來? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI彭:這會給你的.COM。 1125 01:00:13,960 --> 01:00:14,794 >> 聽眾:OK。 1126 01:00:14,794 --> 01:00:15,460 ANDI彭:是的。 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 它指出,它發現它。 1129 01:00:19,744 --> 01:00:20,244 是啊。 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30秒可能? 1132 01:00:25,188 --> 01:00:25,688 是啊。 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 大家好或者多一點的時間? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 舉手? 1137 01:01:01,640 --> 01:01:02,320 展會負責人? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 酷。 1140 01:01:05,300 --> 01:01:07,924 任何人想給我的第一 行代碼對這一計劃? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 聽眾:[聽不清]。 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI彭:所以首先, 我們也許打破這種下來。 1145 01:01:20,160 --> 01:01:24,370 那麼,什麼是strrchr的返回類型? 1146 01:01:24,370 --> 01:01:26,150 讓我們回去。 1147 01:01:26,150 --> 01:01:29,015 strrchr,什麼是返回類型? 1148 01:01:29,015 --> 01:01:29,640 聽眾:字符* 1149 01:01:29,640 --> 01:01:31,270 ANDI彭:這是一個char *,對不對? 1150 01:01:31,270 --> 01:01:35,760 這意味著,你可能會 想創建另一個字符*來樣 1151 01:01:35,760 --> 01:01:40,400 商店時,它的 返回到,對不對? 1152 01:01:40,400 --> 01:01:43,200 因為如果你打電話 該函數strrchr, 1153 01:01:43,200 --> 01:01:47,030 它會給你一個指針 只要它發現最後一期, 1154 01:01:47,030 --> 01:01:47,580 對不對? 1155 01:01:47,580 --> 01:01:49,913 >> 不過,你會想 存儲在某個地方,對不對? 1156 01:01:49,913 --> 01:01:52,612 所以,我們如何代碼 這為我們的計劃? 1157 01:01:52,612 --> 01:01:54,320 聽眾:你讓 焦炭* [聽不清]。 1158 01:01:54,320 --> 01:01:55,240 ANDI彭:是的。 1159 01:01:55,240 --> 01:01:57,120 聽眾:[聽不清]。 1160 01:01:57,120 --> 01:01:58,000 ANDI彭:strrchr。 1161 01:01:58,000 --> 01:01:58,390 是啊。 1162 01:01:58,390 --> 01:01:59,306 哦,錯過了的R那裡。 1163 01:01:59,306 --> 01:02:02,877 聽眾:文件名[聽不清]。 1164 01:02:02,877 --> 01:02:03,376 這是什麼? 1165 01:02:03,376 --> 01:02:04,420 呵呵,這只是秒。 1166 01:02:04,420 --> 01:02:04,940 >> ANDI彭:哦,這只是秒。 1167 01:02:04,940 --> 01:02:05,610 是啊,對不起。 1168 01:02:05,610 --> 01:02:06,330 我的壞。 1169 01:02:06,330 --> 01:02:08,370 實例不匹配。 1170 01:02:08,370 --> 01:02:12,130 >> 聽眾:然後點。 1171 01:02:12,130 --> 01:02:13,970 >> ANDI彭:是的。 1172 01:02:13,970 --> 01:02:16,570 要小心,你當人 are--在這裡,讓我進行放大。 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 在那裡,我們走了。 1175 01:02:24,400 --> 01:02:26,770 要小心,你當人 在打字,特別是當 1176 01:02:26,770 --> 01:02:27,920 你正在做的只是一個字符。 1177 01:02:27,920 --> 01:02:32,480 這真的很容易不小心正好 做雙引號,而不是單一的。 1178 01:02:32,480 --> 01:02:35,212 >> 這是行不通的。 1179 01:02:35,212 --> 01:02:36,670 你的編譯器會抱怨。 1180 01:02:36,670 --> 01:02:38,790 而你的函數是 只是不會運行。 1181 01:02:38,790 --> 01:02:40,540 所以要小心,當 你正在做的事情 1182 01:02:40,540 --> 01:02:42,622 用字符,它的單引號。 1183 01:02:42,622 --> 01:02:44,830 所以做這一行的 代碼有意義給大家? 1184 01:02:44,830 --> 01:02:46,810 我們正在創造一個char *指針。 1185 01:02:46,810 --> 01:02:50,310 因為strrchr返回 什麼類型的指針。 1186 01:02:50,310 --> 01:02:53,440 >> 所以,我們要打電話和strchr 關於s,這是字符串,文件 1187 01:02:53,440 --> 01:02:55,140 名,我們傳遞研究。 1188 01:02:55,140 --> 01:02:59,750 我們正在尋找的最後 的期間,這是實例 1189 01:02:59,750 --> 01:03:02,200 只是單引號點單引號。 1190 01:03:02,200 --> 01:03:02,700 是啊。 1191 01:03:02,700 --> 01:03:05,180 >> 聽眾:我們什麼時候使用雙引號 當我們使用單引號? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI彭:是的。 1193 01:03:05,320 --> 01:03:07,180 因此,雙引號 總是用,當你 1194 01:03:07,180 --> 01:03:10,120 有不止一個的字符串。 1195 01:03:10,120 --> 01:03:13,070 所以,如果你正在做的strstr, 這是一個你 1196 01:03:13,070 --> 01:03:16,320 搜索字符串,字符串, 將通過它在雙引號。 1197 01:03:16,320 --> 01:03:18,070 但是,任何時候它只是 單個字符, 1198 01:03:18,070 --> 01:03:19,870 你想要做的單引號。 1199 01:03:19,870 --> 01:03:22,880 >> 這是一個很好的事情要記住。 1200 01:03:22,880 --> 01:03:25,864 所以,現在,我們有我們 指針,我們用它做什麼? 1201 01:03:25,864 --> 01:03:27,780 我問你們來 打印出來,對不對? 1202 01:03:27,780 --> 01:03:30,940 所以[聽不清],你要 給我的代碼行? 1203 01:03:30,940 --> 01:03:31,780 >> 聽眾:printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI彭:是的。 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 聽眾:--you需要一個佔位符。 1207 01:03:36,843 --> 01:03:37,340 ANDI彭:是的。 1208 01:03:37,340 --> 01:03:38,334 聽眾:打印的佔位符。 1209 01:03:38,334 --> 01:03:40,322 我不知道是什麼地方 持有人而是指向它。 1210 01:03:40,322 --> 01:03:40,819 >> 確定。 1211 01:03:40,819 --> 01:03:42,027 讓我們跳過現在即可。 1212 01:03:42,027 --> 01:03:44,556 聽眾:然後comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI彭:指針,對不對? 1214 01:03:45,720 --> 01:03:47,970 >> 聽眾:指針,燁。 1215 01:03:47,970 --> 01:03:51,140 >> ANDI彭:一種因此,一個腦筋急轉彎, 有做的指針和字符串 1216 01:03:51,140 --> 01:03:53,130 樣的,我們已經談過了。 1217 01:03:53,130 --> 01:03:57,766 什麼樣佔位做我們 需要一個指針一個char *? 1218 01:03:57,766 --> 01:03:59,574 >> 聽眾:[聽不清]。 1219 01:03:59,574 --> 01:04:00,240 ANDI彭:是的。 1220 01:04:00,240 --> 01:04:02,522 它更容易比你們覺得是。 1221 01:04:02,522 --> 01:04:03,230 聽眾:字符串? 1222 01:04:03,230 --> 01:04:04,730 ANDI彭:這只是一個字符串,沒錯。 1223 01:04:04,730 --> 01:04:06,595 因為記得字符串 真的不存在。 1224 01:04:06,595 --> 01:04:09,430 一個char *是完全相同 同樣的事情,作為一個字符串。 1225 01:04:09,430 --> 01:04:14,461 所以實際上這s是什麼 本來應該使用的所有沿。 1226 01:04:14,461 --> 01:04:14,960 確定。 1227 01:04:14,960 --> 01:04:17,810 >> 讓我們來看看,如果我們可以嘗試運行這一點。 1228 01:04:17,810 --> 01:04:19,450 讓我們做一個化妝的擴展。 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 酷。 1231 01:04:23,396 --> 01:04:28,830 你們看我是如何傳遞的 psset7.zip和finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 它只是打印出 該.zip和.DOCX? 1233 01:04:32,500 --> 01:04:34,150 有意義嗎? 1234 01:04:34,150 --> 01:04:36,660 >> 好了,所以我覺得在你的樣子了 在你的pset你功能 1235 01:04:36,660 --> 01:04:41,050 要如果要問 字符串有一定的結局, 1236 01:04:41,050 --> 01:04:42,800 你必須給予一定的錯誤代碼。 1237 01:04:42,800 --> 01:04:44,820 所以這將是很可怕。 1238 01:04:44,820 --> 01:04:47,350 因為如果你自己看著辦 出來的擴展名是什麼, 1239 01:04:47,350 --> 01:04:49,810 那麼你可以比較 延伸,看它是否相匹配 1240 01:04:49,810 --> 01:04:51,251 具有一定的擴展。 1241 01:04:51,251 --> 01:04:53,250 然後你就可以返回 錯誤信息,對不對? 1242 01:04:53,250 --> 01:04:53,860 是啊。 1243 01:04:53,860 --> 01:04:55,370 >> 聽眾:所以我們不 要加1或什麼? 1244 01:04:55,370 --> 01:04:56,530 指針會去the-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI彭:沒。 1246 01:04:56,660 --> 01:04:57,530 >> 聽眾:後--point。 1247 01:04:57,530 --> 01:04:58,196 >> ANDI彭:是的。 1248 01:04:58,196 --> 01:05:00,650 它指向精確地 在那裡發生了。 1249 01:05:00,650 --> 01:05:04,010 因此,例如在這裡,我們 搜索的週期。 1250 01:05:04,010 --> 01:05:06,597 因此,它會返回 的指針的期間。 1251 01:05:06,597 --> 01:05:08,930 然後它會打印 出開始時的期間。 1252 01:05:08,930 --> 01:05:10,260 >> 所以,你不需要加1。 1253 01:05:10,260 --> 01:05:15,000 雖然,這是完全罰款,如果 你拿不准,只是那種 1254 01:05:15,000 --> 01:05:16,070 中測試一下自己。 1255 01:05:16,070 --> 01:05:17,590 構建一個示例程序。 1256 01:05:17,590 --> 01:05:20,240 測試一下自己, 看到它的打印。 1257 01:05:20,240 --> 01:05:23,380 這也是一個不錯的方式來做到這一點。 1258 01:05:23,380 --> 01:05:26,040 >> 酷。 1259 01:05:26,040 --> 01:05:28,880 而這幾乎是所有 今天我為你們。 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 今天我們做了很多的PSET的東西。 1262 01:05:33,300 --> 01:05:35,720 所以,當有疑問,像 我說,永遠仰視 1263 01:05:35,720 --> 01:05:37,620 該文件string.h庫這個pset中。 1264 01:05:37,620 --> 01:05:40,370 還有的將是一個很大的 在那裡,函數可能是有用的。 1265 01:05:40,370 --> 01:05:41,300 有些人可能沒有用處。 1266 01:05:41,300 --> 01:05:42,133 我真的不知道。 1267 01:05:42,133 --> 01:05:44,370 韋德通過它,有 一大堆人。 1268 01:05:44,370 --> 01:05:49,100 的strstr,和strchr,strrchr是 超好,樂於助人,以及 1269 01:05:49,100 --> 01:05:52,080 在strcpys和strcasecmps 我們已經使用。 1270 01:05:52,080 --> 01:05:56,510 >> 這是瞎搞用的只是很多 串,確定他們是平等的, 1271 01:05:56,510 --> 01:05:59,960 得到的東西出字符串,並 能夠正確打開文件。 1272 01:05:59,960 --> 01:06:02,252 這是一個很大的文件I / O。 PSET真的不是那麼糟糕。 1273 01:06:02,252 --> 01:06:04,210 你會採取 看著它,下載它, 1274 01:06:04,210 --> 01:06:05,590 看到一大堆的代碼。 1275 01:06:05,590 --> 01:06:09,220 不用擔心,你的代碼 其實寫的是不差。 1276 01:06:09,220 --> 01:06:12,870 如果任何人有問題的 服務器,來看看我的後段。 1277 01:06:12,870 --> 01:06:16,040 >> 再一次道歉不 把糖果萬聖節。 1278 01:06:16,040 --> 01:06:18,790 我不知道什麼是我錯了。 1279 01:06:18,790 --> 01:06:20,800 但是,我們將有雙重 糖果下一次。 1280 01:06:20,800 --> 01:06:25,620 本週在你的pset和好運。 1281 01:06:25,620 --> 01:06:27,170 是啊。 1282 01:06:27,170 --> 01:06:28,722