>> ลำโพง 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 หรือตัวเลข