>> 扬声器1：让我们写一个程序， 提示输入名称和用户
房子的三名学生。
但是，而不是仅仅打印出自己的 名称和房屋到屏幕上，让我们
而不是信息保存到磁盘。
换句话说，让我们来创建，也就是说，一个CSV 文件，逗号分隔值，
这实际上只是一个文本文件， 如Excel或数字节目
可以打开，并有效地挽救那些 名称和房屋永久使
我们可以稍后再检讨。
>> 要做到这一点，让我们先来看看 有的，我已经样板代码
开始了。
首先是在文件头中注意 往上顶现在的标准lib.h这
恰好有相关的一些功能 文件I / O，文件的输入和输出。
请注意，我还宣布 一个叫学生常数 -
在全部大写 - 其值 被硬编码为三人。
现在，请注意我的主要的是内部 节目中，我声明数组
大小的3使用常数，称为 每一个其成员的学生是
型的学生。
>> 现在回想一下，一个学生，我们将定义 作为具有这两者的名称和房子
这是字符串按照本 声明指示，点小时。
现在又回到structs1.c，请注意，我 有一个for循环在这里，那将
从零循环最多三个。
它会提示我的一个学生的 姓名和学生的家
一遍又一遍又一遍。
>> 那么在这个程序的底部， 请注意，我有另外一个循环
那就是要释放的第i个学生的 名和第i个学生的家中
类似构造的环路。
可以肯定的是，我们可以结合这些循环 成只有一个，但我想
有一些不同的代码段 为便于讨论在这里。
>> 现在，在那些环之间，让我们 其实有另外一个，而这一次的
生活的目的是实际保存所有 这些名称和房子，是
目前在RAM磁盘的形式 以逗号分隔的值。
要做到这一点，我们将使用 三个新功能 -
F开，F的printf和F接近，这 打开一个文件，打印到文件，并
关闭一个文件。
我们可以使用它们，如下所示。
>> 文件中，在全部大写，这是有点 在C好奇心，文件被FOPEN
报价引文结束，现在的名称 文件，比方说，students.CSV，但我可以
叫它任何东西，逗号，现在我 要指定一个单片，内
双引号。
W，正如你可能已经猜到了， 指的fopen应该打开这个文件
所谓Students.CSV写了这么 我们实际上可以节省一些
内容到它。
>> 让我们接下来的检查，如果文件 不等于空。
因为如果是这样，有些事情可能 出了错在这种情况下，我们
不应继续尝试 打印任何东西给它。
但如果它不为空，然后把里面的 大括号我要遍历
从i等于0就起来给学生， 而我要去
增加我在每个迭代。
而这个循环中，我要 所以FPRINTF为打印到文件 -
特别是一 我已经打开了 -
一个字符串，它看起来像这样％S，％s的 反斜线N分别闭合引号。
>> 现在我想插入到每个 这些占位符的实际值
一个学生的名字和一所房子 使用点运算符。
学生支架i.name，学生 支架i.house接近括号
分号。
现在，下面这个for循环，我只是 要调用的文件FCLOSE为了
最终关闭文件。
>> 现在，当我运行这个程序，我不应该 实际看到的东西
屏幕上，但我应该有运行后， 这个程序一个名为
Students.CSV在同一个目录 我在应该运行该命令
包含一个逗号分隔 值列表。
让我们一起来看看。
>> 使结构1 / structs1学生 名字，让我们说大卫，
他会住在马瑟。
学生的名字，让我们说，劳伦， 她会住在莱弗里特。
学生的名字，让我们说，罗布， 他会住在柯克兰。
现在，再次，正如所料，没有出现 已经发生的事情，但让我
在命令提示符，然后键入前进 在希望克编辑students.CSV的
该文件确实存在。
>> gedit的students.CSV ENTER键，而事实上， 请注意，包含纯粹的文件
用逗号文本，但文本分隔 每个字段，的确存在。
而如果我们使用，而不是CS50 家电，而是一个更熟悉的Mac或
电脑，事实证明，我们确实可以 以更加开放的这个CSV文件
熟悉程序如Excel或数字。