>> SPEAKER 1: Hãy viết một chương trình nhắc nhở người dùng cho tên và
nhà của ba sinh viên.
Nhưng thay vì chỉ in ra của họ tên và nhà ở cho màn hình, chúng ta hãy
thay vì lưu thông tin vào đĩa.
Nói cách khác, chúng ta hãy tạo ra, nói rằng, một CSV tập tin, dấu phẩy tách giá trị,
mà thực sự chỉ là một file văn bản các chương trình như Excel hoặc số
có thể mở và hiệu quả tiết kiệm những tên và nhà vĩnh viễn để
chúng ta có thể xem lại chúng sau này.
>> Để làm như vậy, trước tiên hãy xem qua một số mã nồng nhiệt khi tôi đã
bắt đầu với đã.
Chú ý đầu tiên trong số các tiêu đề lên hàng đầu tại là lib.h tiêu chuẩn mà
xảy ra để có một số chức năng liên quan nộp I / O, tập tin đầu vào và đầu ra.
Chú ý rằng tôi cũng đã tuyên bố một hằng số gọi là HỌC SINH -
trong tất cả các mũ - có giá trị được mã hóa cứng như ba.
Nhận thấy bây giờ bên trong của chính mình chương trình, tôi tuyên bố một loạt các
kích thước ba sử dụng mà không đổi tên SINH VIÊN mỗi thành viên mà là của
loại học sinh.
>> Nhớ lại bây giờ mà một sinh viên chúng tôi sẽ xác định như có một tên và một ngôi nhà cả hai
đó là những chuỗi theo này khai chỉ thị, chấm h.
Bây giờ trở lại trong structs1.c, nhận thấy rằng tôi có một vòng lặp ở đây là sẽ
lặp từ số không đến ba.
Nó sẽ nhắc tôi cho một học sinh tên và nhà của học sinh
một lần nữa và một lần nữa và một lần nữa.
>> Sau đó ở dưới cùng của chương trình này, nhận thấy rằng tôi có một vòng lặp
đó là sẽ giải phóng các sinh viên thứ i của tên và nhà sinh viên thứ i trong một
xây dựng tương tự như vòng lặp.
Để chắc chắn, chúng ta có thể kết hợp những vòng vào chỉ là một, nhưng tôi muốn
có một số phân khúc của mã vì lợi ích của thảo luận ở đây.
>> Bây giờ ở giữa những người cho vòng, chúng ta hãy thực sự có một, và cái này thì
mục đích trong cuộc sống là thực sự tiết kiệm tất cả các tên và ngôi nhà là
hiện đang trong bộ nhớ RAM vào đĩa theo hình thức của dấu phẩy tách giá trị.
Để làm như vậy, chúng ta sẽ sử dụng ba chức năng mới -
F mở, F printf, và F gần, mà mở một tập tin, in một tập tin, và
đóng một tập tin.
Chúng ta có thể sử dụng chúng như sau.
>> FILE, trong tất cả các mũ, trong đó có phần của một sự tò mò trong C, FILE được fopen
quote unquote và bây giờ là một tên cho nộp, nói, students.CSV, nhưng tôi có thể
gọi nó là bất cứ điều gì nhất, dấu phẩy và bây giờ tôi sẽ chỉ định một đơn w bên trong
của dấu ngoặc kép.
W, như bạn có thể dự đoán, có nghĩa là fopen nên mở tập tin này
gọi là Students.CSV để viết nên rằng chúng ta thực sự có thể tiết kiệm một số
nội dung cho nó.
>> Chúng ta hãy kiểm tra tiếp theo nếu tập tin không bằng null.
Bởi vì nếu nó là, một cái gì đó có thể đi sai trong trường hợp này chúng tôi
không nên tiếp tục cố gắng in bất cứ điều gì với nó.
Nhưng nếu nó không phải là vô giá trị, sau đó bên trong dấu ngoặc nhọn tôi sẽ lặp
từ tôi bằng 0 trên lên đến SINH VIÊN, và tôi sẽ
tăng i trên mỗi lần lặp.
Và bên trong vòng lặp này, tôi sẽ fprintf để in vào một tập tin -
đặc biệt là một Tôi đã mở -
một chuỗi giống như% s này,% s dấu gạch chéo ngược n quote gần.
>> Và bây giờ tôi muốn cắm vào từng những giữ chỗ các giá trị thực tế
tên của học sinh và một ngôi nhà Bằng cách sử dụng dấu chấm.
Sinh viên khung i.name, sinh viên dấu ngoặc khung i.house gần
dấu chấm phẩy.
Bây giờ dưới này cho vòng lặp, tôi chỉ đơn giản là sẽ gọi fclose của tập tin để
để cuối cùng đóng tập tin.
>> Bây giờ khi tôi chạy chương trình này, tôi không nên thực sự thấy bất cứ điều gì trên
màn hình, nhưng tôi cần phải có sau khi chạy chương trình này một tập tin gọi
Students.CSV trong cùng thư mục Tôi chạy lệnh trong đó nên
chứa một dấu phẩy danh sách các giá trị.
Chúng ta hãy có một cái nhìn.
>> Làm cho cấu trúc 1. / Structs1 học sinh tên, chúng ta hãy nói David,
anh ta sẽ sống trong Mather.
Tên của học sinh, chúng ta hãy nói, Lauren, cô ấy sẽ sống trong Leverett.
Tên của học sinh, chúng ta hãy nói, Rob, anh ta sẽ sống trong Kirkland.
Bây giờ, một lần nữa, như mong đợi, không có gì xuất hiện đã xảy ra, nhưng hãy để tôi
đi trước tại dấu nhắc lệnh và gõ g sửa students.CSV với hy vọng rằng
tập tin đó thực sự tồn tại.
>> Gedit students.CSV ENTER, và quả thật, nhận thấy rằng một tập tin có chứa hoàn toàn
văn bản, nhưng văn bản phân cách bằng dấu phẩy cho từng lĩnh vực, thực sự tồn tại.
Và nếu chúng ta đang sử dụng, không phải là CS50 thiết bị, nhưng một máy Mac quen thuộc hơn hoặc
Máy tính, nó chỉ ra rằng chúng ta có thể thực sự mở tập tin CSV này với hơn
chương trình quen thuộc như Excel hoặc số.