დინამიკები 1: მოდით დავწეროთ პროგრამა, რომელიც თხოვს მომხმარებელს სახელები და სახლები სამი სტუდენტებს. მაგრამ ვიდრე უბრალოდ ამობეჭდოთ მათ სახელები და სახლები ეკრანზე, მოდით ნაცვლად გადარჩენა, რომ ინფორმაცია დისკზე. სხვა სიტყვებით, მოდით შევქმნათ, ვთქვათ, CSV ფაილის, მძიმით გამოყოფილი მნიშვნელობები, რომელიც რეალურად მხოლოდ ტექსტური ფაილი, პროგრამები, როგორიცაა Excel ან ნომრები შეუძლია გახსნას და ეფექტურად გადარჩენა იმ სახელები და სახლები მუდმივად ისე, რომ ჩვენ შეგვიძლია განიხილავს მათ მოგვიანებით. ამისათვის, მოდით პირველი შევხედოთ ზოგიერთი boilerplate კოდი, რომელიც მე დაიწყო უკვე. ყურადღება მიაქციეთ, პირველი, რომ მათ შორის headers up ზედა არის სტანდარტული lib.h რომელიც ხდება გარკვეული დაკავშირებული ფუნქციები შეიტანოს I / O, ფაილის შემავალი და გამომავალი. გაითვალისწინეთ, რომ მე ასევე განაცხადა, მუდმივი მოუწოდა სტუდენტებისთვის - ყველა caps - რომლის ღირებულება რთულია კოდირებული როგორც სამი. ყურადღება მიაქციეთ, რომ შიგნით ჩემი მთავარი პროგრამა, მე გამოცხადების მასივი ზომა სამი გამოყენებით, რომ მუდმივი მოუწოდა სტუდენტური თითოეულ რომლის წევრებიც არის ჩაწერეთ სტუდენტებს. შეგახსენებთ, რომ სტუდენტური ჩვენ განსაზღვრავს როგორც სახელი და სახლის ორივე რომლებიც strings როგორც პოსტი ამ დეკლარაცია ავალებს, dot h. ახლა structs1.c შეამჩნევთ, რომ მე არ მარყუჟი, რომ აპირებს iterate ნულიდან სამ. ის აპირებს შეეკითხება ჩემთვის სტუდენტის სახელი და სტუდენტის სახლი ისევ და ისევ და ისევ. მაშინ ბოლოში ამ პროგრამის შეამჩნევთ, რომ მაქვს კიდევ ერთი მარყუჟის რომ აპირებს გასათავისუფლებლად შ სტუდენტის სახელი და შ სტუდენტის სახლი ანალოგიურად აშენებული loop. რა თქმა უნდა, ჩვენ შეგვიძლია დააკავშიროთ იმ მარყუჟების თარგმნეს მხოლოდ ერთი, მაგრამ მე მინდოდა აქვს რამდენიმე მკაფიო სეგმენტების კოდი გულისთვის დისკუსია აქ. ახლა მათ შორის, მარყუჟების, მოდით რეალურად კიდევ ერთი, და ამ ერთი მიზანი ცხოვრებაში არის რეალურად გადარჩენა ყველა ეს სახელები და სახლები, რომლებიც ამჟამად RAM დისკის სახით საქართველოს მძიმით გამოყოფილი მნიშვნელობები. ამისათვის, ჩვენ ვაპირებთ გამოვიყენოთ სამი ახალი ფუნქციები - F ღია, F printf და F ახლოს, რომელიც გახსნა ფაილი, ბეჭდვა ფაილი, და დახურეთ ფაილი. ჩვენ შეგვიძლია გამოვიყენოთ შემდეგი რედაქციით. ი, ყველა caps, რომელიც გარკვეულწილად ცნობისმოყვარეობა C, ფაილის იღებს fopen ციტირებით unquote და ახლა სახელი ფაილის, ვთქვათ, students.CSV, მაგრამ ვერ შევძელი ეძახით საუკეთესო არაფერს, მძიმე და ახლა მე აპირებს დააკონკრეტა ერთი w შიგნით ორმაგი შეთავაზებები. W, როგორც თქვენ ალბათ მიხვდა უკვე, იმას ნიშნავს, რომ fopen უნდა გახსნას ეს ფაილი ე.წ. Students.CSV წერა ასე რომ ჩვენ შეგვიძლია რეალურად შეინახოთ რამდენიმე შინაარსი მას. მოდით მომდევნო შემოწმებისას, თუ ფაილი არ არის ტოლი null. რადგან თუ ის არის, რაღაც, ალბათ, წავიდა არასწორი ამ შემთხვევაში ჩვენ არ უნდა მიიღოს ცდილობენ ბეჭდვა არაფერი მას. მაგრამ თუ ეს არ null, მაშინ შიგნით curly აფრთხილებს მე ვაპირებ iterate ეხლა i უდრის 0 მდე სტუდენტები, და მე ვაპირებ ნამატი i თითოეულ iteration. და შიგნით ამ მარყუჟის, ვაპირებ fprintf ისე, ბეჭდვა ფაილი - კონკრეტულად ერთი მე უკვე გახსნა - სიმებიანი რომ ასე გამოიყურება% s,% s backslash n ახლო გაცემა. და ახლა მინდა შეაერთედ თითოეულ იმ placeholders რეალურ ღირებულებებს სტუდენტის სახელი და სახლი გამოყენებით dot ოპერატორი. სტუდენტები bracket i.name, სტუდენტები bracket i.house ახლო paren ნახევრად მსხვილი ნაწლავის. ახლა ქვემოთ ამ for loop, მე უბრალოდ ვაპირებ მოვუწოდო fclose ფაილის მიზნით საბოლოოდ დახურეთ ფაილი. ახლა, როდესაც მე აწარმოებს ამ პროგრამის, მე არ უნდა რეალურად ვხედავ არაფერს ეკრანზე, მაგრამ მე უნდა შემდეგ გაშვებული ამ პროგრამის ფაილი სახელად Students.CSV იგივე დირექტორიაში, რომ მე აწარმოებს ბრძანება, რომ უნდა შეიცავს მძიმით გამოყოფილი სიაში ღირებულებებს. ავიღოთ სახეს. რათა structs 1. / Structs1 სტუდენტის სახელი, ვთქვათ, დავით, მაშინ ის ცხოვრობს Mather. სტუდენტის სახელი, ვთქვათ, ლორენ, იგი ყველაფერს ცხოვრობს LEVERETT. სტუდენტის სახელი, ვთქვათ, რობ, მაშინ ის ცხოვრობს Kirkland. ახლა, ისევ, როგორც მოსალოდნელი იყო, არაფერი არ ჩანს რომ არ მოხდა, მაგრამ ნება მომეცით წავიდეთ წინ იმ command prompt და ტიპი g რედაქტირება students.CSV იმედოვნებს, რომ რომ ფაილი ნამდვილად არსებობს. Gedit students.CSV ENTER, და მართლაც, შეამჩნია, რომ ფაილი, რომელიც შეიცავს წმინდა ტექსტი, მაგრამ ტექსტი მძიმით ყოველი ველი, მართლაც არსებობს. და თუ ჩვენ გამოყენებით, არ CS50 ელექტრო, მაგრამ უფრო ნაცნობი Mac ან PC, აღმოჩნდება, რომ ჩვენ შეგვიძლია ნამდვილად გახსნა ამ CSV ფაილი მეტი ნაცნობი პროგრამა მოსწონს Excel ან ნომრები.