ANDI彭:我們幾乎 通過所有pset時。 事實上,我們正​​在通過廣大 最困難的pset。 所以我們實際上只是 要那種清風 在接下來的幾個星期。 我們將開始談論我們的 最終的項目,事件即將到來 在接下來的幾個星期。 而生命將變得輕而易舉。 所以今天不會太大。 我們希望,實際上清風 通過今天的議程, 然後離開這裡 一些空餘時間。 另外,我要道歉 今日缺乏糖果。 我不知道為什麼。 但在週通向 萬聖節,我會忘記糖果。 所以,我其實只是一個巨大的 失望對現在的你。 因為我真的記糖果 對於每一個類,但萬聖節。 但在下週,我將帶來 一倍糖果的量 彌補的是,所有的你。 這將是巨大的。 所以,我有一對夫婦的公告 對於一些調度。 我有一些時間安排問題。 然後,我們將進入到 說說什麼叫做文件模式。 我們要談 快速TCP / IP HTTP。 然後,我們將編寫我們 自己的網站上使用HTML和CSS。 然後我會真正離開也許 20分鐘就好談pset6。 由於pset6實際上是一個很大的 東西,我們已經看到過, 但我想刷新 其中的一些概念 並教了新的功能。 酷。 所以首先, 歡迎破發。 我希望你休息是愉快的。 請問你做的休息時間嗎? 聽眾:去紐約。 ANDI彭:你去紐約? 我認為,一半的學校 去紐約。 它的所有權利。 我花了我大部分的突破 久坐不動的在床上Netflixing。 這是一個好時機。 但我們現在回來了,回到了 會議上,背的東西擺動。 我們中午,由於這週五PSET。 我想你已經已經 拿起你的測驗,是嗎? 所以誰比誰有 沒有他們的測驗, 請進來,讓你的測驗 從我在段的末端。 或者跟踪我在校園裡。 我會用我的地方。 我們的最後一個項目的前期建議也。 因此,對於我們這些從來沒有花誰 這個課前,CS50的頂峰 在這個非常高潮 宏偉工程的學生提出。 和預提案, 只是一個總體思路 對什麼人可能想為自己的 項目,這個想法是因為週一, 下週一中午。 那麼好看多了,大衛·我想會 談論這個講座 如果他沒有。 而有一個堅實的頁面 在我們的網站解釋 該項目的所有要求。 但本質上,挑 你已經任何主題 一直關注 整個在這裡你的時間 在CS,無論是遊戲還是 設計或視頻或任何東西。 你可以真的有種 現在應用的一些經驗 我們在這裡學到的CS50--喜, welcome--到幾乎舉辦 您所選擇的最終項目。 所有這一切是由於週一 通過電子郵件只是一個簡短的Blurb的 對我來說,一個快速的句子, 像,哎,安迪, 我對設計很感興趣 一個遊戲,這是否為iOS。 酷。 只要讓我看看你的簡短的初始 想法最終的項目。 我們將討論通過與否 這其實是一個好主意與否, 如果它是一個可行的主意或沒有。 但就在預建議 是由於下週一。 pset6,我們可愛的web--這是錯誤的。 Pset7? pset6? 這是pset6,對不對? pset6,我們的Web服務器,是因為 星期五中午與已故的一天。 辦公時間為星期一正常地恢復 至週四8:00至本週11:00。 我想共享的 接下來的三個晚上。 酷。 之前我們已經為物質,沒有任何人 有任何疑問,笑話,故事? 你做了什麼秋季休息? 聽眾:我做什麼? ANDI彭:已 這是很久以前其實。 Christabel去紐約。 我住在這裡,並Netflixed。 聽眾:哦,是的,我在這裡。 ANDI彭:哦,好。 聽眾:我不記得 具體是什麼。 ANDI彭:這是確定的。 聽眾:Netflixing可能。 ANDI彭:Netflixing。 是的,這是一個好時機。 確定。 好的。 之前有任何疑問 我們跳進材料? 此外,我們要嘗試 今天一節的速度通過, 沒有過多的涉及。 並希望,我們會得到 在這裡有點早。 對不起,沒有糖果,也是。 我很失望, 特別是在萬聖節。 好的。 酷。 所以,我們要開始談論 一個命令行參數調用文件模式。 文件模式,所有這僅僅是一個Unix系統 調用命令行進行 更改文件權限。 因此,例如,我們已經 所有遇到頁 這樣很可能在某個時候 我們的生活中是一個互聯網跨度 用戶,我們的網站服務器, 給了我們故宮的錯誤。 您沒有權限訪問, yadda,yadda,yadda,在此服務器上。 所有這一切的真正含義 是權限 該貼到任何 頁面您試圖訪問 不向你敞開。 因此,相當多,文件模式 是在其中的方式 我們可以修改這些系統權限 給每個人,用戶,組, 或世界,或任何 這些接入組合 對某些文件, 目錄,任何事情真的, 在任何一種制度 操作系統。 因此,如果任何人有 如果你覺得電腦 像今天一起跟隨我, 完全隨意只需鍵入的東西 研究。 如果沒有,你可以只掛出。 所以,我要真正拉動 我的終端現在。 因此,要運行的命令 文件模式,或者至少只 列出的權限您 文件目錄,只是LS-L。 正如你所看到的,一堆 東西彈出其中大部分 重要的是我們 左手側此處。 你們看到了一堆RS,WS,1 /的。 是啊。 這些基本上都是剛 所有的文件權限 解釋什麼特定的目錄 和你的系統中的文件有。 因此,讓我們回去 這裡的功率點。 因此,除了文件名 因為你們可以在右側看到, 我們期待看到本質 只是在左邊的列中。 所以除了剛 文件名,我們 可以看到文件的權限,他們 所有者組,組名,日期 該文件的最後 改性,等等。 你可以看到很多使用chmod東西。 讓我們讀文件模式的方式是, 我們幾乎忽略第一個字母 在閱讀權限方面。 第一個字母只是告訴我們什麼 系統的類型,我們在訪問。 研發,在這種情況下,是一 文件夾或目錄。 因此,我們知道,目前我的工作區 第七節是一個目錄。 然後你看到三個 黑社會,本質上只是 三組三個字符。 你能想到的每一個位。 所以,你只是有三套 三個比特,九個位總共。 你對待他們三個一組。 所以三第一組是 總是你的用戶權限。 你的第二個三組 總是你的組權限。 而你的第三個三集 總是喜歡這個世界, 在無處不在的權限。 所以我想簡單 要問的問題是什麼 用戶和組之間的差異。 主要的區別 用戶和組之間 是用戶就是你本人 訪問無論它是現在。 一組可以,如果你有多個 一台計算機上的用戶,例如。 所有的人都可以被視為一組。 然後天下 只是世界上,每一個人。 因此,我們可以在後面看到我們如何 修改這些成不同的權限。 因此相當多,我們 將仍然集中 在左側,在那裡部分 對於目錄CS50我們看到drwx, 其中,第r只是意味著它的可讀性。 在W只是意味著它是可寫的。 然後在X剛 意味著它的可執行文件。 你會覺得它種 對沒有任何意義。 應該是E。 但實際上x樣的 工作好一點, 因為你可以更好地記住它。 因此,三種類型的東西你 能做到的,你可以讀文件, 你可以有權限寫 文件,或者你可以有權限 要執行的文件。 因此,我們實際上的方式, 代表了那些位 是數字4,2和1。 因此可以將任何可讀是 通過4-數來表示。 凡是是可寫的 由2表示。 和任何的可執行 如由1表示。 所以在這個意義上,我們也可以 代表這些numbers-- 您好,歡迎,以不同的方式。 抱歉。 每個人都在,我要去 道歉代表大家 現在進入教室。 我忘了今天的糖果。 對不起,我是個失敗 本週萬聖節。 我會帶雙量 糖果下次來彌補它。 但不管怎麼說,對不起 關於球員,對不起。 於是方式,我們實際上可以輸入 我們命令的參數是我們 可以做CHMOD組斜線權限, 其中,該集團只是什麼 組我們正在試圖改變。 而權限 無論我們想給它添加。 因此,例如,該 再加上增加了權限, 和減法帶走權限。 和組的類型,我們有我們的一個 對於所有,U為用戶,克群, 或o他人。 這是一個有點抽象,現在。 但是,我們就去了幾個例子 只是為了證明這一點真正的快。 大家好這個 幻燈片,這樣我就可以繼續前進? 酷。 因此,例如,RWX。 在我們討論究竟意味著什麼, 首先是什麼RWX是什麼意思? 如果你看到這一定 文件具有RWX權限, 這是什麼意思 人可能是能夠做到? 聽眾:讀,寫和執行。 ANDI彭:是的,沒錯。 你可以讀寫和執行。 因為所有這三個的 字符都存在。 因此,如果我們繼續聊 有關這方面的比特而言, 的RWX也可以被表示為700。 因為你可以在任何看到 之類的文件目錄的權限, 有三個黑社會。 在這種情況下,只有第一 黑社會有什麼存在。 所以在這種情況下,r是4, 的w是2,x是1。 如果加在一起的,這是7。 所以,如果轉換 它為二進制,它是700。 因為圖7是第一個三合一。 0,沒有什麼禮物 在第二個黑社會。 然後還有什麼存在的 第三個黑社會,所以這是另外一個0。 因此,在同樣的意義,一幫黑社會 只是在比特可以表示,只是 以二進制為好。 因此,700表示完全一樣的東西 RWX ------在權限方面。 每個人都清楚這一點? 酷。 所以CHMOD 111將使 其中該文件的權限? 給你們一對夫婦 秒到這種轉換。 還記得,第一次 三元組是用於用戶。 第二三元組的組。 而第三個黑社會是適合每一個人。 所以CHMOD 111將給予其 權限,並為之類型? 就拿幾秒鐘, 想想回來。 是啊。 聽眾:所以每個人都可以執行它。 ANDI彭:是的,沒錯。 聽眾:但是,沒有人可以讀取或寫入。 ANDI彭:並隨時 為給大家講解 你怎麼來了這個結論。 聽眾:那麼,對於用戶來說, 組,和世界,這是所有1, 這是可執行的代碼。 ANDI彭:是的,沒錯。 所以圖1,在這種情況下,我們都知道是 即是這樣的可執行代碼。 因為閱讀是4。 寫作是2。 而可執行文件是1。 那麼,這三個黑社會是1,那 意味著走向世界,給用戶, 和基團,它們 都是可執行文件。 每個人都好有嗎? 確定。 這樣一來,第二路 我們實際上可以 寫這也是你 可能只是做搭配chmod 加的X.一個是指所有或每個人。 加號是指給予許可。 然後將x表示可執行文件。 因此,有兩個命令 實際上是相同的。 所以,如果你想運行 這在你的終端, 你做搭配chmod 111名 您的目錄或文件。 或者,你可以做搭配chmod加X, 目錄文件的名稱。 同樣的事情,只是一個簡單的方法, 或許,對於一些代表或改變 文件權限。 用chmod每個人都OK 之前,我們繼續前進? 酷。 所以,現在我們要前往成 很抽象的概念,幾張幻燈片 我是非常 要微風通過。 而且它的,如果你完全確定 不明白了一切。 即使是現在,我還是真的不 完全明白了一切。 但更得到了 頂級的理解 如何對這些事情的工作。 因此,我們要談 趕緊有關TCP / IP, 這僅僅是傳輸控制 協議削減互聯網協議。 從講座回憶, 大衛,他才教你 在那裡,他想通過這個例子 在一個信封的注意事項 高達喜歡報告廳的頂部? 所以在法學院禮堂 大衛基本上證明 如何在TCP / IP協議的工作原理 某種意義上說,所有這 是是確保數據的方式 已交付跨越服務器 或在互聯網上。 因此,在包絡線的例子 和消息,在端用戶 看得出來,哦,我需要 收到四包的信息。 但事實上,我只是收到了三份。 這意味著我必須失去之一。 和一個未送達。 等的TCP / IP在網絡上, 通過您的計算機和服務器, 做同樣的事情。 它所做的就是指定一個 框架,其中丟失的數據 數據包可以重新發送和接收。 就像在互聯網上,當你試圖 在線訪問文件或發送的文件 給您的朋友或看網頁 瀏覽器,千千萬 的數十億 的字節的信息 每毫秒傳送。 而且它是真的,真的很令人困惑。 它真的很難 真正知道什麼是被發送 而什麼不被發送。 所以TCP / IP只是規定 一個有凝聚力的框架 在您的網站 瀏覽器和服務器 一種可以溝通 彼此,只是 確保數據包 一切都在這裡並沒有什麼失落的 和所有你請求的數據 實際顯示正常。 每個人都在這一點很確定 短暫的高層次明白了嗎? 酷。 於是我們將移動 到談論HTTP,這 僅僅是超文本傳輸協議。 HTTP,所有這一切是任何頁面 或文件被訪問您的網站上, 服務器返回一個HTTP 在響應狀態代碼 於該請求確保 或者,哦,這個請求經歷。 而一切都顯示正常。 或者說,哦,不,404。 出事了。 哦,我不能顯示。 所有這是是什麼 您嘗試訪問, 作為用戶使用正試圖訪問, 在internet--只是確保 你可能成功,也有 訪問無論是與否 成功訪問不管它是什麼。 這樣一來,HTTP狀態 代碼只是為您提供 是能夠知道是否一個裝置 或者不是很成功與否。 因此,例如,一個示例請求。 在這裡你可以看到它的 通常一般四行。 我們有一個GET HTTP 1.1,這僅僅是 該方法請求的URL,協議 版本,字段名, 和字段值。 所以完全沒必要 這裡記住任何東西。 只是那種熟悉 自己與如何將這些看。 在本實施例中,該方法要求 URL只是任何要求 您發送的服務器。 就像,嘿嘿,服務器,我真想 訪問yadda,yadda,yadda,HTTP頁面。 協議版本只是什麼 版本的主機或服務器 用於訪問信息。 該字段名的網站或 那你要訪問的URL, 在這種情況下,www.apple.com。 和字段值是 只是典型的名稱,值。 它可以是任何類型的組合的 字母或數字或什麼的。 因此,一個典型的請求,所以 其實你的電腦 發送給,說,哎服務器, 你知道我需要這顯示, 這是那種要求 他們實際上得到。 什麼樣的實例響應 服務器會發送回您 將幾乎同樣的事情, 除與在頂部的狀態代碼。 所以200,2 0 0總是 該狀態代碼確定。 就像,OK,這個請求經歷。 你是能夠訪問 一切正常。 生活是美好的。 生活是美好。 一切都完全好。 所以,這只是告訴瀏覽器, 你的服務器,嘿嘿,一切都很好。 我得到了所有我需要的信息。 酷。 但問題是 有時問題上來 當你have--最後我想 我談到重複。 你有不太好的反應。 因此,例如,404 是找不到網頁。 有時你有一個禁止訪問。 可使用不同的其它 我是狀態碼 確保你當你都看到了 努力做研究在互聯網上。 你的瀏覽器給你 對,不,不能訪問。 而你喜歡,好了,廢話。 因此,只要好看多了,有 一些很常見的狀態碼。 也許熟悉 有哪些那些。 最有趣的一個 我想我已經聽過 of--如果你碰巧 查找所有的人 線上,由於某種原因,有 實際上是一個真正的狀態碼 所謂418我是一個茶壺。 我GOOGLE了哪裡 這個起源是從。 而且很顯然四月的一個愚人節 日在幾十年前, 有人認為這將是熱鬧 創建一個名為418一個新的狀態碼 我是一個茶壺。 合法,這個名字 代碼被稱為我是一個茶壺。 我忘了你要什麼頁 去實際上使這種顯示屏。 但很顯然,你其實可以 得到他的代碼我 一個茶壺不知何故 通過做一些事情。 因此,有成百上千 數以百計的狀態代碼。 他們中有些人賺更多 感覺比其他人。 但幾乎​​只是熟悉 特性的最常見的。 請求的實體主體是 短而粗壯,很明顯。 所以有時也有更多的 比我可怕的錯誤是一個茶壺。 但是,這是一個我猜 那種你希望打。 但是,我不認為你會的。 每個人都好就只是狀態 碼,請求,過程,製造 確保信息傳遞正確? 所以,現在我們要轉變 成部分,今天一個有趣的部分, 我們談一點關於HTML的地方。 HTML,全部是超文本 標記語言。 這只是標準的語言 用於創建所有網絡 互聯網上的網頁。 因此,任何網頁,什麼是 你最喜歡的網頁? 什麼是你最喜歡的網頁? 聽眾:[聽不清]。 ANDI彭:對不起? 聽眾:的tumblr。 ANDI彭:的tumblr。 這樣的tumblr被寫在HTML。 因此,我們要真正去通過,並 玩弄一些這些東西 以後。 幾乎所有你 需要學習,要知道, 寫HTML你也許可以 只是谷歌在互聯網上。 HTML,它不是像C程序 在這裡您可以創建變量,做 很酷的事情吧。 它更多的只是,呵呵,這就是我 想要的東西出現在我的網站。 而我只是打算把它研究。 而且它會設置樣式。 所以HTML,從某種意義上說,它就像 格式化或模板語言。 這是一個容易得多。 這是一個更容易學習, 一個更容易寫 比典型的編程 語言,很容易, 非常用戶可訪問的,友好的。 因此,我們實際上要發揮 各地,我們自己寫的網頁今天。 但是,在我們開始之前,我只是想 去了一些簡短的最佳實踐。 由於HTML就是這樣一個簡單的 語言,因為即使 如果你做一對夫婦的事情錯了, 它有時可能沒有注意到, 我們要確保我們 實際上秉承了我們的最佳實踐 以確保事情 可以繞來繞去,但 並不總是會不會向右走 確保他們最小化。 因此,相當多,要確保 您關閉所有標籤 你寫的HTML時。 如果你打開 身體,確保你 關閉它與身體某處。 你要確保你的 網頁驗證通過 什麼叫W3驗證。 你可以谷歌,網上, 並有一個鏈接到它。 然後你要 單獨的HTML,這 是你的標記語言來自你的風采, 這是CSS語言,大衛 證明我們也 要發揮一點與講座。 酷。 所以,任何時候你想運行 HTML的CS50家電, 我們要運行 程序調用了Apache, 所有這只是一個內置的 Web服務器,每個人都在CS50 訪問。 我們稱之為apache50僅僅因為我們 喜歡叫在CS50的一切50。 所以,你開始的CS50網頁的方式 服務器是通過鍵入您的命令上 行apache50啟動點。 如果你想在任何結束它 的時候,你就apache50最終沒有點。 而你只需要敲擊回車。 它應該是標題在這裡很快。 是啊。 所以,我只是要趕緊走了過來 一個非常簡單的網頁的一個例子。 我們打算花 像10,15分鐘的上場 各地編寫我們自己的網頁。 確定。 因此,這裡的IDE-- 每個人都可以看到了嗎? 沒有,真的。 在這裡,我將進行放大。 我剛剛得到這個簡單的模板 這裡沒有什麼實際的。 我們只是要快速編寫 一個HTML程序中,我們只 打招呼的世界。 在C,現在我們那麼一回事 只是要做到這一點在HTML中。 沒有人想實際只 嘗試給我的第一件事情,你 必須放在一個HTML文檔? 是啊。 聽眾:括號中,[聽不清]。 ANDI彭:是的。 所以東西是非常獨特的,以 HTML即我們通常傳統 請不要在其他命令不會遇到 線路電平編程語言 是,我們實際上是 指定文件的類型 這將是 在我們的代碼的頂部。 因此,在這個instance--我想 這是正確的命令,對不對? 是啊。 在頂部,你只是想包括 括號內的爆炸DOCTYPE HTML只 告訴您的計算機,嘿嘿,看出來了。 而HTML文檔即將到來。 然後我們怎麼想 開始了我們的文件? 如果我們只是想打個招呼,有 網頁,打招呼的世界, 我們怎麼去建設呢? 其實,讓我們轉向谷歌。 我們可以真正做到這一點。 是啊。 在那裡,我們走了。 所以HTML。 正如你所看到的,我的瀏覽器實際上是 自動造型這對我來說。 同樣的事情在C,當你 創建一個開放的大括號, 您的瀏覽器自動 增加了在接近大括號。 幸運的是,我們的IDE愛 這樣做對我們來說也是一樣。 所以,現在我們可以種類型 一個標籤的開始, 並且它會隨時告訴我們 記得鍵入標記的結束。 我認為這需要資本。 然後,我們要添加,一如既往, 一個頭,這是冠軍。 我們只是想也許叫 這種招呼,然後身體。 而且你去那裡。 這實際上是我們的HTML文檔。 這樣的方式,任何HTML文檔 總是稱呼in--同樣的事情 與詮釋主作廢。 你總是想有 HTML中打開和關閉標籤 在你的代碼的頂部和底部。 你想擁有一個腦袋裡面 其中包含標題,只是什麼 是要顯示你的網頁的標籤 頁,然後一個機構,它的內部 實際上顯示的內容 無論你想做的事情。 所以,如果你想實際運行 這一點,我要放大出來。 實際上,你可以啟動 apache50啟動點。 酷。 所以你可以看到,現在 此鏈接已彈出。 它說你的網站是現在 可從下面的一些鏈接。 所以我們所有的IDE擁有done-- 沒有IDE,sorry--是啊, 我們的IDE所做的就是創建一個web 鏈接在其所有的網頁 可以在服務器上被訪問。 因此,讓我們來看看在這裡。 讓我們點擊這個,去hello.html的。 而你看到一個非常簡單的 網頁為世界你好。 確定。 我們真的要只 有everyone--是啊,這是怎麼回事? 觀眾:我有一個基本的問題。 ANDI彭:是的。 聽眾:你如何保存 文件為HTML? ANDI彭:是的。 所以,如果我要創建一個新的文件, 如果我做的新文件,Untittle,如果我這樣做, section.html,咚, 這就是我要做的。 聽眾:[聽不清]? ANDI彭:沒有。 聽眾:[聽不清]。 ANDI彭:沒有。 聽眾:[聽不清]。 ANDI彭:是的。 好看多了,在延伸 該文件是你的IDE中, 它告訴計算機,即 告訴瀏覽器,嘿嘿,看出來了。 這將是代碼 用這種語言編寫。 因此,例如,在微軟 一句話,怎麼所有Word文檔 有什麼擴展名結尾? .doc或.DOCX,對不對? 所有這些都指定到 您的操作系統,嘿嘿, 你已經有了一個Word文檔來了。 在Word中打開它。 同樣的事情與PDF文件。 它知道,哦,我需要 打開這個文件 與Adobe Reader或Adobe Acrobat。 因此擴展操作 同樣的方式在您的計算機。 如果您指定的代碼頁 被命名為HTML,那麼它知道, 哦,你有HTML代碼。 我打算把它當作HTML代碼。 因此,它是在這個意義上超級智能。 所以每個人,讓我們像10分鐘 而剛剛創造我們自己的網站。 讓我們增加了可愛的東西。 隨意說任何你想要的。 我只是想確保 每個人的服務器是否正常運行 我們免費之前,你到處理器集。 因為如果你的服務器 不為pset的運行, 這將是非常糟糕。 我只是要漂浮和 看到每個人的工作。 怎麼樣了? 聽眾:我只是把我的電腦上。 ANDI彭:這是確定的。 聽眾:[聽不清]。 ANDI彭:只要你的IDE。 是啊。 聽眾:[聽不清]。 ANDI彭:這是確定的。 聽眾:[聽不清]。 ANDI彭:完全罰款。 是每個人都訪問 他們的網絡服務器是否正常? 是apache50運行是否正常? 我覺得在一些 其他部分,我們 曾與人沒有問題 能夠訪問該服務器。 是啊。 所以,你只要運行apache50 空間開始太空時期。 聽眾:[聽不清]。 ANDI彭:是的。 好? 聽眾:[聽不清]。 ANDI彭:哦,好。 所以,你應該有一個空格。 所以apache50-- 聽眾:我做到了。 ANDI彭:--start空間。 聽眾:哦,空間點。 ANDI彭:是的,空間點。 你去那裡。 於是,如果你有 創建的HTML頁面, 那麼你可以直接進入 到它指定的鏈接。 你應該能夠訪問它。 每個人都能夠 訪問他們的網頁可以嗎? 聽眾:[聽不清]。 ANDI彭:哦,沒關係。 聽眾:[聽不清]。 ANDI彭:是的。 我覺得你其實可以打開 它你的瀏覽器,在瀏覽器內 而不僅僅是你的IDE瀏覽器。 是的,我想如果你複製和粘貼。 聽眾:然後 我們如何把它關掉? [聽不清] ANDI彭:是啊,你這樣做 apache50停止與無期。 是啊。 聽眾:[聽不清]。 ANDI彭:由於沒有時間。 是啊。 在那裡,我們走了。 是啊。 我們正在創建自己的網頁。 聽眾:哦,爽。 ANDI彭:是的。 觀眾:我有一個問題。 所以阿帕奇50-- ANDI彭:50,是的。 聽眾:[聽不清]。 ANDI彭:什麼? 這是奇怪的。 看,這就是問題的一種 這是發生之前。 確定。 部分後來見我。 因為我們有一些 問題與服務器。 而你想 確保你的服務器是 在開始之前,PSET運行。 因為你會需要它。 是啊。 是否有其他人還沒有被 能夠得到他們的服務器開始? 對於那些你們誰想要添加 額外的風格,以自己的網頁, 我們其實可以做什麼 在講座大衛就很好, 這是創建一個額外的樣式 片,這是一個點的CSS,層疊 樣式表,實際上只是添加入。 因此,例如,我剛剛創建 幾乎差不多的確切同一台 大衛做了講座。 您可以非常簡單,只是做全身。 你有所謂的標籤,其中 可應用於IDE任何部分 你想在你的 實際為HTML頁面。 所以頁面的主體,就 可以做文字居中對齊。 然後我會創意 裡面的標籤叫做頂 其中,我想這些東西 發生,分配一個更大的像素尺寸 的字體。 我想字體粗細要大膽。 而我想要的顏色,以 是藍色的,只是隨心所欲 價值觀,我決定選擇。 我可以創建一個名為中間另一個標記。 字體大小,使它有點小。 然後,我可以創建另一個標籤 所謂的底部在哪裡我想要的字體大小 甚至可以說仍然較小。 所以,幾乎這僅僅是例子 源代碼或源的樣式表的 它很容易只是谷歌。 如果你說,哦,我想我的字體 以斜體和深綠色, 你也許可以谷歌, 然後它會告訴你 適當的標籤或標識創建。 這樣一來,這樣你實際上會 一種具有此在HTML文檔 或者用它是所有你 做的,是在頭 添加一個鏈接到樣式表。 所以,你可以只是鏈接的href等號 不管你的樣式表的名稱 是。 然後關係 是一個樣式表。 因此,任何HTML文檔中,只要 因為你有這點CSS表, 你應該能夠訪問 和具有屬性那裡。 因此,例如,在這裡,我只是 創建另一個例子網頁。 這是歡迎CS50節 星期二下午2:00 3:30我。 然後,我添加了一個可愛的形象, 我們可能應該能看到。 所以,如果你在這裡看看, 如果你去style.html, 我們創建了一個網頁與小貓。 由於小貓是真棒。 因此,添加圖像僅僅是IMG SRC鏈接。 差不多,如果有 任何類型的功能 要添加到您的 website--所以我們可以說, 要添加一個菜單 或搜索欄或類似 一個image--只是谷歌如何做到這一點。 而你只是撲通這種格式。 你可以只是漂亮 多只加入。 這是真的,真的很容易。 我們正在創造我們自己的 網頁現在。 如果你想用於: 聽眾:[聽不清] ANDI彭:對不起? 聽眾:[聽不清]。 ANDI彭:呵呵, DIV只是一個事業部 告訴我說,哦,我有 某一段被稱為 中間在我申請 我的CSS標籤,然後 我的其他事業部的底部。 這一切都在告訴你。 因為這是很好的保持 東西整齊有序, 因此程序知道究竟如何運行。 並認為我可以複製粘貼此 到我的實際的瀏覽​​器也是如此。 它應該是罰款。 是啊。 耶。 因此,如果每個人都希望只 嘗試創建一個網頁, 我們將採取兩到三分鐘。 我只是想確認 每個人的服務器正在運行 家家都有一 想法如何做到這一點。 如果你們想 拿出你的計算機。 仍然沒有工作? 聽眾:我只是[聽不清]。 ANDI彭:也許嘗試更新50為好。 是啊。 聽眾:[聽不清]。 ANDI彭:是的。 所以,你的方式開始新的 在IDE的Web服務器只是 做apache50空間開始的空間點。 我只是想確認 每個人的服務器運行正常。 聽眾:在這裡,在終端上? ANDI彭:是的。 聽眾:[聽不清]。 ANDI彭:Apache的。 其實,我認為你是 運行的東西了。 是啊,你居然 運行不同的服務器。 是啊,你是好。 只要知道的工作,你真行。 聽眾:OK。 ANDI彭:有兩家 方式來運行的服務器。 所以只要方式之一 正在工作,它的所有權利。 我們將採取一分鐘 只是那種完成了 任何的收尾 網頁你們想拍。 是每個人工作的方式? 每個人的服務器 除了為你運行? 我們會明白這一點。 和HTML的非常簡單。 所以,我認為我們都好。 是啊。 我會回來的。 聽眾:[聽不清]。 ANDI彭:OK。 聽眾:所以這只是 開始加載。 ANDI彭:不用擔心。 所以HTML,還有源代碼 會後,部分在網上。 此外,大衛有一個整體 一群在網上也是如此。 只是種瀏覽一下它 看到HTML頁面寫入。 這是相當容易的。 什麼,你不知道,你漂亮 簡單,只是谷歌,你是好。 我只是想確保 你的服務器運行。 聽眾:是否經常這樣做? ANDI彭:這是從來沒有發生在我身上。 我不知道這甚至有可能冬眠。 聽眾:[聽不清]。 ANDI彭:我認為everyone-- 我的以前從未休眠。 我不知道為什麼。 這很奇怪。 聽眾:[聽不清]。 ANDI彭:是你的冬眠? 聽眾:[聽不清]。 ANDI彭:是的。 聽眾:這是確定的。 因此,一旦它是開放的。 ANDI彭:OK。 我們會處理一些服務器 後段的問題。 你應該罰款。 雖然,你要確保你 讓你離開之前他們解決。 因為如果你的服務器的 沒有運行,那麼你 不會是能夠做到的 PSET,像任何部分處理器集的。 所以,你要確保 這是的工作。 酷。 好的。 告別小貓。 我花了很長時間尋找 這小貓的圖片穿上。 所以,反正。 聽眾:[聽不清]。 ANDI彭:對不起? 聽眾:[聽不清]。 ANDI彭:我認為這是在網站上。 像規範? 聽眾:[聽不清]。 我認為,規範只是 網上七個星期 我想,這就是所謂的pset6,甚至 雖然我們是在七個星期,這 是位計算。 聽眾:但我的意思是,如果你 想看看at--如果你 想拉我們的版本 該網站從我們斷絕? 所以像server.c是處理器集,對不對? 如果你想看看這個, 怎麼樣它檢查出來? ANDI彭:哦,所以實際上 處理器集,所有我們正在做的 這裡implementing--在這裡, 我去了這個簡單。 因此,對於每一個人,這只是得到 第,你們是幸運的。 很少有材料 實際支付的今天。 我只是要在接下來的 20分鐘去在PSET幫助。 因為有一些有用的 功能,這將有助於你的生活。 並希望,我們會出 這裡還有20分鐘。 確定。 所以pset7是錯誤的。 儘管我們是在週末 七,它實際上pset6。 我會改變這種狀況。 我們所要做的pset6 正在創建的web服務器。 這聽起來超級嚇人。 尤其是對那些 你們誰已經 看了看分配代碼, 有很多代碼,大量的代碼。 但完全確定。 因為細節問題 實際創建的一部分 服務器是由我們來做。 所有你真的問 在此做PSET 只是做一些字符串操作 在文件I / O。它實際上 像相當簡單。 所以,當你第一次下載that--誰 這裡實際上已經下載 處理器集,並採取看看嗎? 好的。 是啊。 還有像500行代碼 那你要像, 到底是怎麼回事? 而這完全罰款。 請確保你看穿行。 因為大衛和 - 我不知道。 我不認為這是Zamyla的,這一個。 但我認為其他一些 穿行測試是相當 在以下方面有所幫助 只是讓你知道 到底是怎麼回事你的代碼中。 而這是完全確定。 由於四大功能,你是 要求執行反倒 零做實際的服務器。 他們所要做的只是 分析不同的字符串, 通過字符串搜索, 以確保一切都在做 什麼他們應該做的事情。 因此,為了這種效果,也有 一些非常有用的功能, 尤其是對字符串 操控,是我們都應該 去了,我認為我最好 對你們非常有用 試圖處理器集之前學習。 而且他們都包含 在您的文件string.h庫。 有可能是更有用 我沒有在這裡包含的功能, 因為我要么不使用它們或 也許我只是不知道它們的存在。 隨意通過student.h一目了然。 因為那裡將是一個很大 的功能,這些功能非常有用的。 因此,六,我用的最多的我 當我在過去的一周做PSET 是的strtok,和strchr,strrcher, 的strstr,strcasecmp,和strcpy。 這樣一來,最後兩個看似 非常熟悉你最。 海峽情況相比,它是所有比較 字符串檢查它們是否相等, 包括大小寫。 和strcpy只是複製 一根弦到緩衝區中。 所以這兩個應該非常 熟悉你們在這一點上。 因為我們已經使用了他們很多, 特別是對於最後的pset。 但前四也許 你有沒有看到,直到如今。 但是,我要只是穿行其中。 因為他們將讓你的生命 真的,真的很容易for--不容易, 但對於很多這個即將到來的pset容易。 確定。 所以字符* strtok函數,這是功能 定義此功能包含 在字符串,H庫。 如果您將得到字符的輸入* 字符串,它只是一個字符串, 或者常量的char * deliminator,DELIM的簡稱, 所有它做的是打破了較大 字符串轉換為一系列的我們稱之為 令牌由一定值分隔。 因此,從某種意義上說,如果我要奉獻 你section.7.php,這是一個字符串。 因此,這將是如果我是通過 在本作我的海峽,我的char *海峽, 如果我的deliminator了點,這一切 會做的是通過字符串搜索。 並在第一時間就看到一個點, 它只是返回指針 對發現的最後一個令牌 在此之前的字符串。 因此,這將在這裡去。 而且它只是給我7.php。 如果我要打電話 功能更多的時間, 它會給我只是.PHP。 所以,這一切功能是做 被打破了較大的字符串 根據成較小的字符串 你在尋找什麼。 因此,例如,在 你的樣子了功能 如果你想看看什麼 某些字符來約 或者點發生或擴展發生, 這個功能將是相當有用的。 是啊。 無後顧之憂。 這都將be--是啊,這是怎麼回事? 聽眾:所以在第一線, 如果我們使用這個例子中, 什麼將我們插入了嗎? ANDI彭:是的。 你只需撥打一個 strtok在字符串逗號DELIM。 而字符串等於section.7.php。 然後你DELIM 可以等於只是點綴。 聽眾:OK。 ANDI彭:是的。 就這樣。 所有這些功能都相當 類似的,當我們通過他們去。 他們只是略有不同的事情。 但是,他們都去 讓你的生活輕鬆了許多。 第二個功能,這其中的喜歡 超級,超級,超級重要的, 是the--托起。 哎呀。 和strchr搜索第一 occurrence--實際上,是的。 和strchr是功能 我絕對只是走過去。 所以忽略了我說的話 用於第一功能。 它實際上是所謂的和strchr。 那麼這裡會發生的事情是,如果 給您提供一個字符串的字符C, 它只是給 你不管是什麼樣。 是啊。 所以,把它當做海峽,這 是一個字符串,CHR為char。 因此,所有你想要做的是搜索 對於其中一個char是一個字符串中。 所以它搜索第一 發生的字符的 c。在字符串str。 聽眾:[聽不清]。 ANDI彭:是的。 然後,如果它沒有找到 它,它會返回NULL。 因此,一些那將是非常 為你們做處理器集有用 比如說,如果你正在尋找一種 擴展像.DOCX就一個字 文檔或.PDF為PDF文檔, 有種你可以用它來看看 無論什麼是繼 你看一個點,對每一次? 因此相當多,如果你 運行通過的功能, 如果它返回NULL, 那麼你知道它 沒有發現它的點,這意味著這 顯然不是有效的文件擴展名。 或者,如果它返回 什麼,你就知道 這將返回任何的 實際上後延伸。 所以,那些你們誰了 開始尋找通過查找 和解析,這一功能的 將是超級有用。 因此,我們實際上會 證明使用此。 為什麼你們不嘗試寫一 功能布爾句話的char * s表示 只是如果s是返回true 句子,否則為假。 因此提示,你會 以可能使用和strchr。 或者你在剛剛搜索 串為一定的字符。 所以,在一個句子, 什麼分隔句子 從非句, 有什麼具體的人物? 聽眾:一個空格。 ANDI彭:一個空間,對不對? 所以,我們怎麼可能會 希望這個函數,在做什麼? 聽眾:[聽不清]。 ANDI彭:我們將要和strchr 字符串空間的外觀。 因為如果它返回的東西,那麼 我們知道,這一定是一個句子。 這意味著,我們必須 在這個串的空間。 如果沒有空間,那麼我們就知道 這,哎,你猜它不是一個字符串。 這可能只是一個很長的單詞。 所以,我給你們一對夫婦 分鐘寫此功能。 是啊。 聽眾:你得到 此字符串從用戶? ANDI彭:是的。 所以,這只是一個功能。 所以,想像你的主函數中 你已經have--讓我們去這裡。 確定。 所以我寫了這個節目裡 我有我的主要功能在哪裡 我剛剛創建了兩個字符串。 第一個是嗨,我的名字 是Andi--顯然,一個句子。 我的第二個就是 岸堤,顯然不是一句。 所以我跑這兩個的 通過這個功能串。 我想你們寫寒句。 而我保存了這些值, 然後只需打印出來。 因此,認為該用戶是 要傳遞一個字符串。 然後,你要基本上 弄清楚,如果它是一個句子或不 並返回true或false相應。 如果你們想給 豎起大拇指或抬起頭來,點頭, 是任何人都已經準備好開始 這一點,那會是不錯的。 也許就像30多秒? 好的。 讓我們來看看,如果你可以試試 寫這個功能。 所以,偽coding--我只是要 通過這個,現在那種走。 好看多了,我們知道了 函數,我們需要使用。 我們將調用該函數 我們的字符串和搜索一空。 如果返回的東西,那麼我們必須 知道這一點,顯然,這是一個句子。 因為有空間。 然後,我們將返回true。 否則,我們將返回false。 沒有人想給 我的第一行代碼 我們實際上是要 用寫? 它實際上是最難 代碼行也是如此。 是啊。 聽眾:如果strtok在S-- ANDI彭:就和strchr。 聽眾:[插入VOICES] 空間不等於空。 ANDI彭:酷。 完全正確。 每個人都明白,第一行? 我們要調用的strstr, 這是一個函數,搜索 字符串s為空字符。 而如果它發現它,它會 返回一個指向哪裡是。 如果沒有找到它, 它會返回NULL。 所以,如果它返回任何東西比其他 NULL,那麼我們就知道它找到了一個空間。 這是否有意義? 酷。 好的。 因此,如果我們知道它的發現一個 空間,我們怎麼想幹什麼? 聽眾:返回true。 ANDI彭:是的。 返回true。 然後,有人要 完成了功能給我嗎? 是啊。 否則,就這樣。 而嘗試編譯這一點。 是啊。 所以當你們可以從看 輸出,記得布爾用C 總是表示二進制。 1是真實的。 0是假的。 如果我們運行這個 上串的一個,函數 是嗨,我的名字的Andi-- 顯然,一個sentence--結果 打印輸出為1,這是真的。 第二個,這僅僅是 總之,結果打印出來 為0,這是假的。 每個人都清楚的那種對如何 這個函數寫? 是啊。 聽眾:可我們也做代替, 不等於沒有,等於等於0, 因此,它是等於? ANDI彭:沒有。 因為和strchr是一個功能。 我要回本。 那麼什麼是返回類型 我們strchr函數? 聽眾:哦,好。 或者為null。 ANDI彭:是的。 這是一個char *,告訴我,無論 這個函數會返回, 這將是一個指針。 無論是指針將是 指著其中,它的發現是, 或者它會返回 一個指針為NULL。 在這兩種情況下,這是怎麼回事 返回的指針的東西。 所以,如果你要畫上等號 這等於,等於0, 你會得到一個編譯錯誤。 因為它會返回一個指針。 而你要嘗試 指針進行比較,以一個整數。 和計算機的不 會喜歡這一點。 是的,沒錯。 酷。 每個人都好? 其次,我們將去 在一個函數調用的strstr。 不用擔心,如果這些 功能混淆你。 他們混淆了我。 因此,你們可以看到, 他們所有的聲音幾乎相同。 只是當你感到困惑, 拉起string.h中圖書館。 而且你們可以排序 通過一個人的那個。 所以的strstr,所有這些都搜索 一個字符串完全是另外一個字符串。 那麼,和strchr只是搜索 為單個字符, 搜索的strstr為整個字符串。 所以我想看看的,我不 知道了,嗨,我的名字是安迪。 和我最好的朋友的名字也安迪。 如果我想看看在這個 句子安迪的整個字, 我的針本來 你要尋找什麼的。 而你的草垛是什麼 你正在尋找入。 所以,如果你正在尋找一個 在句子中特定的詞, 這個詞將是你的針。 然後是句子本身 將是你的幹草堆。 所以它只是搜索 第一次出現 串針 在字符串草垛。 它返回指針 在第一個出現。 除外,記住在這種情況下,它是 整個字符串的第一次出現 您正在搜索 為,不只是一個字符。 所以,這幾乎是 同樣的事情功能 我們只是做了,只需用 多一點特異性。 因為你正在尋找 不是只有一個性格比較。 以及使用是完全相同 因為我們只是做了一個。 每個人都用這個好不好? 確定。 最後一個我們要去 以上是strrchr,這是不 混淆或的strstr與和strchr。 strrchr在有一個額外的河 要小心,當你打字。 你可能會發現自己包括 一個額外的R或不包括R, 然後你的函數 是得了行不通的。 而且你會感到困惑。 要小心,你拼寫 所有這些功能的權利。 所以strrchr是確切的 同樣的事情,和strchr 但它會搜索不是第一次 發生特定的字符, 而最後出現的位置。 因此,在這個意義上, 它幾乎是完全一樣的。 但是,代替移動 轉發在一個字符串, 你會被感動 向後的字符串。 同樣的事情,你只是 搜索以不同的順序。 所以這可能是超好, 為您查找超好用 功能,第一 功能上的pset中。 讓我們假設我們需要寫一個 無效的擴展功能中,我們 通過一個恆定的char *文件名, 只是一個字符串,一個文件名, 這需要在該名稱並打印 出該文件的擴展名。 因此,舉例來說,如果我 通過pset7.zip的字符串中, 它會打印出剛 延伸,這是.ZIP。 而這種將工作 任何一種延伸, .DOCX的Word或.pdf格式為PDF 文件或.html的HTML文件。 好看多了,寫 功能,可以做到這一點。 實際上,我要 切換到IDE中。 它不是load--我們走吧。 因此,所有我所做的是 創建一個char *,第一串, 所謂pset7.zip。 我要去進行放大。 我創建了一個第二個字符串 所謂finalpaper.docx。 而給我寫一個函數,當 所謂打算只是打印出來 文件擴展名。 也許需要幾分鐘時間思考 如何你要做到這一點。 稍微更具挑戰性 比最後一個, 但用法差不多 完全一樣。 是啊。 所以寫一個函數調用擴展 即,如果我給的文件,你的名字, 如果我給你pset7.zip--我 希望你能打印出剛剛的.zip。 如果我給你喜歡finalpaper.docx, 剛打印出的.docx, 任何文件的只是擴展。 這實際上只 採用兩行代碼。 因此,嘗試,如果你看 也許可以做到這一點在這一點。 實際上,它只 需要一行代碼。 但兩行可能是更標準。 什麼功能是我們可能 會想打電話? 聽眾:strrchr。 ANDI彭:strrchr吧。 因為我們正在尋找 從右邊左邊。 我沒有給你們 像這樣的一個例子, 但如果我給你的一個示例 www.apple.com,我只是想 。com的,它會是其中的例子 你要撥打的最後一個實例 這一時期,而不是​​第一個,對不對? 如果你是電話和strchr,它 就已經給你的apple.com。 如果你叫strrchr,它 會給你的.COM。 所以要小心哪些 ways--在我的例子, 你很可能可以有 只是寫它用,和strchr, 因為只有一個點。 但在另一些情況下, 這可能不是這樣的。 所以總是試圖設計 您的代碼很好,所以that--是嗎? 聽眾:所以在 比如你剛才說的, 當你strrchr它會 給你.com或只是來? ANDI彭:這會給你的.COM。 聽眾:OK。 ANDI彭:是的。 它指出,它發現它。 是啊。 30秒可能? 是啊。 大家好或者多一點的時間? 舉手? 展會負責人? 酷。 任何人想給我的第一 行代碼對這一計劃? 聽眾:[聽不清]。 ANDI彭:所以首先, 我們也許打破這種下來。 那麼,什麼是strrchr的返回類型? 讓我們回去。 strrchr,什麼是返回類型? 聽眾:字符* ANDI彭:這是一個char *,對不對? 這意味著,你可能會 想創建另一個字符*來樣 商店時,它的 返回到,對不對? 因為如果你打電話 該函數strrchr, 它會給你一個指針 只要它發現最後一期, 對不對? 不過,你會想 存儲在某個地方,對不對? 所以,我們如何代碼 這為我們的計劃? 聽眾:你讓 焦炭* [聽不清]。 ANDI彭:是的。 聽眾:[聽不清]。 ANDI彭:strrchr。 是啊。 哦,錯過了的R那裡。 聽眾:文件名[聽不清]。 這是什麼? 呵呵,這只是秒。 ANDI彭:哦,這只是秒。 是啊,對不起。 我的壞。 實例不匹配。 聽眾:然後點。 ANDI彭:是的。 要小心,你當人 are--在這裡,讓我進行放大。 在那裡,我們走了。 要小心,你當人 在打字,特別是當 你正在做的只是一個字符。 這真的很容易不小心正好 做雙引號,而不是單一的。 這是行不通的。 你的編譯器會抱怨。 而你的函數是 只是不會運行。 所以要小心,當 你正在做的事情 用字符,它的單引號。 所以做這一行的 代碼有意義給大家? 我們正在創造一個char *指針。 因為strrchr返回 什麼類型的指針。 所以,我們要打電話和strchr 關於s,這是字符串,文件 名,我們傳遞研究。 我們正在尋找的最後 的期間,這是實例 只是單引號點單引號。 是啊。 聽眾:我們什麼時候使用雙引號 當我們使用單引號? ANDI彭:是的。 因此,雙引號 總是用,當你 有不止一個的字符串。 所以,如果你正在做的strstr, 這是一個你 搜索字符串,字符串, 將通過它在雙引號。 但是,任何時候它只是 單個字符, 你想要做的單引號。 這是一個很好的事情要記住。 所以,現在,我們有我們 指針,我們用它做什麼? 我問你們來 打印出來,對不對? 所以[聽不清],你要 給我的代碼行? 聽眾:printf-- ANDI彭:是的。 聽眾:--you需要一個佔位符。 ANDI彭:是的。 聽眾:打印的佔位符。 我不知道是什麼地方 持有人而是指向它。 確定。 讓我們跳過現在即可。 聽眾:然後comma-- ANDI彭:指針,對不對? 聽眾:指針,燁。 ANDI彭:一種因此,一個腦筋急轉彎, 有做的指針和字符串 樣的,我們已經談過了。 什麼樣佔位做我們 需要一個指針一個char *? 聽眾:[聽不清]。 ANDI彭:是的。 它更容易比你們覺得是。 聽眾:字符串? ANDI彭:這只是一個字符串,沒錯。 因為記得字符串 真的不存在。 一個char *是完全相同 同樣的事情,作為一個字符串。 所以實際上這s是什麼 本來應該使用的所有沿。 確定。 讓我們來看看,如果我們可以嘗試運行這一點。 讓我們做一個化妝的擴展。 酷。 你們看我是如何傳遞的 psset7.zip和finalpaper.docx, 它只是打印出 該.zip和.DOCX? 有意義嗎? 好了,所以我覺得在你的樣子了 在你的pset你功能 要如果要問 字符串有一定的結局, 你必須給予一定的錯誤代碼。 所以這將是很可怕。 因為如果你自己看著辦 出來的擴展名是什麼, 那麼你可以比較 延伸,看它是否相匹配 具有一定的擴展。 然後你就可以返回 錯誤信息,對不對? 是啊。 聽眾:所以我們不 要加1或什麼? 指針會去the-- ANDI彭:沒。 聽眾:後--point。 ANDI彭:是的。 它指向精確地 在那裡發生了。 因此,例如在這裡,我們 搜索的週期。 因此,它會返回 的指針的期間。 然後它會打印 出開始時的期間。 所以,你不需要加1。 雖然,這是完全罰款,如果 你拿不准,只是那種 中測試一下自己。 構建一個示例程序。 測試一下自己, 看到它的打印。 這也是一個不錯的方式來做到這一點。 酷。 而這幾乎是所有 今天我為你們。 今天我們做了很多的PSET的東西。 所以,當有疑問,像 我說,永遠仰視 該文件string.h庫這個pset中。 還有的將是一個很大的 在那裡,函數可能是有用的。 有些人可能沒有用處。 我真的不知道。 韋德通過它,有 一大堆人。 的strstr,和strchr,strrchr是 超好,樂於助人,以及 在strcpys和strcasecmps 我們已經使用。 這是瞎搞用的只是很多 串,確定他們是平等的, 得到的東西出字符串,並 能夠正確打開文件。 這是一個很大的文件I / O。 PSET真的不是那麼糟糕。 你會採取 看著它,下載它, 看到一大堆的代碼。 不用擔心,你的代碼 其實寫的是不差。 如果任何人有問題的 服務器,來看看我的後段。 再一次道歉不 把糖果萬聖節。 我不知道什麼是我錯了。 但是,我們將有雙重 糖果下一次。 本週在你的pset和好運。 是啊。