ลำโพง 1: ลองเขียนโปรแกรมที่ แจ้งให้ผู้ใช้ชื่อและ บ้านสามนักเรียน แต่แทนที่จะเพียงแค่พิมพ์ออกมาของพวกเขา ชื่อและที่บ้านไปยังหน้าจอให้ แทนการบันทึกข้อมูลที่ไปยังดิสก์ ในคำอื่น ๆ ขอสร้างพูด CSV ไฟล์สำหรับค่าแยกจุลภาค ซึ่งเป็นจริงเพียงแฟ้มข้อความที่ โปรแกรมเช่น Excel หรือตัวเลข สามารถเปิดได้อย่างมีประสิทธิภาพและประหยัดที่ ชื่อและที่บ้านอย่างถาวรเพื่อให้ เราสามารถตรวจสอบได้ในภายหลัง ที่จะทำเพื่อให้เป็นครั้งแรกจะดูที่ บางรหัสต้นแบบที่ฉันได้ เริ่มต้นด้วยการอยู่แล้ว ขอให้สังเกตว่าในครั้งแรกที่ส่วนหัว ขึ้นด้านบนคือตอนนี้ lib.h มาตรฐานที่ เกิดขึ้นที่จะมีฟังก์ชั่นบางอย่างที่เกี่ยวข้อง ไฟล์ I / O ใส่ไฟล์และการส่งออก ขอให้สังเกตว่าเราได้ประกาศยัง อย่างต่อเนื่องที่เรียกว่านักศึกษา - ในตัวพิมพ์ใหญ่ทั้งหมด - มีค่า เป็นรหัสที่ยากที่สุดเท่าที่สาม ตอนนี้ขอให้สังเกตภายในของหลักของฉันว่า โปรแกรมฉันประกาศอาเรย์ของ ขนาดสามการใช้อย่างต่อเนื่องที่เรียกว่า นักเรียนแต่ละสมาชิกที่มีอยู่ของ ประเภทนักเรียน จำตอนที่นักเรียนเราจะกำหนด ที่มีชื่อและที่บ้านทั้งสอง ซึ่งเป็นสายตามนี้ แนะนำให้ประกาศจุดชั่วโมง ตอนนี้กลับมาใน structs1.c, สังเกตเห็นว่าฉัน ได้ที่นี่สำหรับวงที่จะ ย้ำจากศูนย์ถึงสาม ก็จะแจ้งให้ผมสำหรับนักเรียนของ ชื่อและที่บ้านของนักเรียน อีกครั้งและอีกครั้งและอีกครั้ง จากนั้นที่ด้านล่างของโปรแกรมนี้ สังเกตเห็นว่าฉันมีอีกสำหรับวง ที่จะเป็นอิสระของนักเรียนที่ i ของ ชื่อและที่บ้านของนักเรียนที่ i ใน สร้างห่วงกัน เพื่อให้มั่นใจว่าเราสามารถรวมลูปที่ เป็นเพียง แต่ผมต้องการที่จะ มีบางส่วนที่แตกต่างของรหัส เพื่อประโยชน์ของการสนทนาที่นี่ ขณะนี้อยู่ในระหว่างเหล่านั้นสำหรับลูปให้ จริงมีอีกและเป็นหนึ่งในนี้ วัตถุประสงค์ในชีวิตคือการบันทึกจริงทั้งหมด ชื่อเหล่านี้และบ้านที่มี ในปัจจุบัน RAM ไปยังดิสก์ในรูปแบบ ของค่าที่คั่นด้วยเครื่องหมายจุลภาค ต้องการทำเช่นนั้นเราจะใช้ สามฟังก์ชั่นใหม่ - F เปิด printf F และ F ปิดที่ เปิดไฟล์ที่พิมพ์ไปยังไฟล์และ ปิดแฟ้ม เราสามารถใช้พวกเขาเป็นดังต่อไปนี้ ไฟล์ในตัวพิมพ์ใหญ่ทั้งหมดซึ่งเป็นส่วนหนึ่งของ อยากรู้อยากเห็นใน C, ไฟล์ที่ได้รับ fopen ได้นำมาอ้างคำพูดและตอนนี้ชื่อ ยื่นพูด students.CSV แต่ฉันสามารถ เรียกมันว่าอะไรมากที่สุดจุลภาคและตอนนี้ฉัน จะระบุเดียวกว้างภายใน ของคำพูดสอง W เป็นคุณอาจจะเดาได้แล้ว หมายความว่า fopen ควรเปิดไฟล์นี้ เรียกว่า Students.CSV สำหรับการเขียนเพื่อ ที่จริงเราสามารถบันทึกบาง เนื้อหามัน ลองตรวจสอบต่อไปว่าไฟล์ ไม่เท่ากับโมฆะ เพราะถ้ามันเป็นสิ่งที่มีความน่าจะเป็น ไปผิดในกรณีที่เรา ไม่ควรดำเนินการเพื่อที่จะพยายาม ที่จะพิมพ์อะไรลงไป แต่ถ้ามันไม่เป็นโมฆะแล้วภายในของ วงเล็บปีกกาฉันจะย้ำ จาก i เท่ากับ 0 ถึงนักศึกษา และฉันจะไป ฉันเพิ่มขึ้นในแต่ละประโยค และภายในของวงนี้ฉันจะไป fprintf เพื่อที่จะพิมพ์ไปยังแฟ้ม - โดยเฉพาะอย่างใดอย่างหนึ่ง ฉันเปิดแล้ว - สตริงที่มีลักษณะเช่นนี้% s,% s n เครื่องหมายคำพูดใกล้ และตอนนี้ฉันต้องการที่จะเชื่อมต่อกับแต่ละ ตัวยึดที่ค่าจริง ชื่อนักเรียนและบ้าน ใช้ประกอบจุด i.name วงเล็บนักเรียนนักศึกษา paren i.house วงเล็บปิด semi-colon ตอนนี้ด้านล่างนี้สำหรับวงฉันเพียง จะเรียก fclose ของไฟล์ที่อยู่ในลำดับที่ ในที่สุดปิดแฟ้ม ตอนนี้เมื่อฉันเรียกใช้โปรแกรมนี้ผมไม่ควร จริงเห็นอะไรใน หน้าจอ แต่ฉันควรจะมีหลังจากใช้ โปรแกรมนี้ไฟล์ที่เรียกว่า Students.CSV ในไดเรกทอรีเดียวกันกับที่ ผมใช้คำสั่งในการที่ควร มีที่คั่นด้วยจุลภาค รายการของค่า ลองมาดู ทำให้ structs 1. / นักศึกษา structs1 ของ ชื่อสมมติว่าเดวิด เขาจะอาศัยอยู่ในท้อง ชื่อนักเรียน, สมมุติว่าลอเรน เธอจะอาศัยอยู่ใน Leverett ชื่อนักเรียนสมมติว่าขโมย เขาจะอาศัยอยู่ในเคิร์กแลนด์ ตอนนี้อีกครั้งเป็นไปตามคาดไม่มีอะไรปรากฏ จะเกิดขึ้น แต่ให้ฉัน ไปข้างหน้าที่พร้อมรับคำสั่งและประเภท กรัมแก้ไข students.CSV ด้วยความหวังว่า ไฟล์ที่แน่นอนอยู่แล้ว gedit students.CSV ENTER และแน่นอน แจ้งให้ทราบว่าไฟล์ที่มีอย่างหมดจด ข้อความ แต่ข้อความที่คั่นด้วยเครื่องหมายจุลภาค ของแต่ละเขตข้อมูลที่มีอยู่แน่นอน และถ้าเราใช้ไม่ CS50 เครื่อง แต่คุ้นเคยมากกว่า Mac หรือ เครื่องคอมพิวเตอร์ก็จะเปิดออกว่าเราจะทำได้แน่นอน เปิดไฟล์ CSV นี้อีกด้วย โปรแกรมที่คุ้นเคยเช่น Excel หรือตัวเลข