>> INTERLOCUTEUR 1: Écrivons un programme qui demande à l'utilisateur les noms et
maisons de trois étudiants.
Mais plutôt que de simplement imprimer leur noms et des maisons à l'écran, nous allons
place sauf que l'information sur le disque.
En d'autres termes, nous allons créer, par exemple, un fichier CSV fichier, pour comma separated values,
qui est en fait juste un fichier texte des programmes tels que Excel ou Numbers
peut ouvrir, et sauver ceux efficacement noms et les maisons de façon permanente et
nous pouvons les examiner plus tard.
>> Pour ce faire, nous allons jeter un oeil à la première un code passe-partout que je n'ai
commencé avec déjà.
Remarquez d'abord que parmi les têtes là-haut est maintenant lib.h norme qui
arrive à avoir des fonctions liées de déposer E / S, l'entrée et le fichier de sortie.
Remarquez que j'ai aussi déclaré une constante appelée ÉTUDIANTS -
en majuscules - dont la valeur est codé en dur que trois.
Remarquez maintenant que l'intérieur de mon principal programme, je vous déclarez un tableau de
trois tailles en utilisant cette constante appelée ÉTUDIANTS dont chaque membre est de
tapez étudiants.
>> Rappelons maintenant que l'élève nous allons définir comme ayant un nom et une maison à la fois de
qui sont des chaînes que par ce déclaration indique, point h.
Maintenant de retour dans structs1.c, vous remarquerez que je ont une boucle ici que ça va
effectuer une itération à partir de zéro jusqu'à trois.
Il va me demander un étudiant de nom et la maison d'un étudiant
encore et encore et encore.
>> Ensuite, au bas de ce programme, remarquerez que j'ai une autre boucle
cela va libérer de l'élève ième nom et la maison de l'étudiant i dans un
construite de façon similaire boucle.
Pour être sûr, nous pourrions combiner ces boucles en une seule, mais je voulais
avoir des segments distincts de code pour les besoins du débat ici.
>> Maintenant entre ceux pour les boucles, nous allons effectivement avoir un autre, et de celui-ci
but dans la vie est de réellement sauver tous de ces noms et les maisons qui sont
actuellement dans la RAM sur le disque sous la forme de comma separated values.
Pour ce faire, nous allons utiliser trois nouvelles fonctions -
F ouvert, F printf, et F proximité, qui ouvrir un fichier, imprimer dans un fichier, et
fermer un fichier.
Nous pouvons les utiliser de la manière suivante.
>> FILE, en majuscules, qui est en quelque sorte une curiosité en C, fichier est fopen
entre guillemets et maintenant un nom pour le déposer, par exemple, students.CSV, mais je ne pouvais
appeler plus rien, virgule et maintenant je suis va spécifier un seul w intérieur
de guillemets.
W, comme vous pouvez l'avez déjà deviné, signifie que la fonction fopen devrait ouvrir ce fichier
appelé Students.CSV pour écrire de manière que nous pouvons économiser de l'
contenu à elle.
>> Prochain chèque de laisser si le fichier n'est pas égal à zéro.
Parce que si c'est le cas, quelque chose a probablement mal tourné dans ce cas, nous
ne devrait pas procéder à essayer d'imprimer quoi que ce soit.
Mais si ce n'est pas nulle, puis à l'intérieur de la accolades que je vais parcourir
de i est égal à 0 sur place aux étudiants, et je vais
incrément I à chaque itération.
Et à l'intérieur de cette boucle, je vais fprintf manière à imprimer un fichier -
spécifiquement l'une J'ai déjà ouvert -
une chaîne qui ressemble à ceci% s,% s barre oblique inverse n fermant.
>> Et maintenant, je veux brancher à chacun des ces espaces réservés aux valeurs réelles
du nom de l'élève et une maison en utilisant l'opérateur point.
Les élèves, les étudiants support i.name support i.house proches paren
point-virgule.
Maintenant dessous de cette boucle, je suis tout simplement vais appeler fclose de fichier pour
à fermer en fin de compte le fichier.
>> Maintenant, quand je lance ce programme, je ne devrais pas réellement voir quoi que ce soit sur le
écran, mais je devrais avoir après l'exécution ce programme un fichier appelé
Students.CSV dans le même répertoire que Je lance la commande en ce que devrait
contenir un séparées par des virgules liste de valeurs.
Jetons un coup d'oeil.
>> De faire struct 1. / Structs1 étudiant nom, disons David,
il vivra à Mather.
Nom de l'étudiant, disons, Lauren, elle vivra dans Leverett.
Nom de l'étudiant, disons, Rob, il vivra à Kirkland.
Maintenant, encore une fois, comme prévu, rien ne s'affiche être arrivé, mais laissez-moi
aller de l'avant à l'invite de commande et tapez g modifier students.CSV dans l'espoir que
ce fichier existe bel et bien.
>> Gedit students.CSV ENTER, et en effet, remarquer qu'un fichier contenant uniquement
texte, mais le texte séparé par des virgules pour chaque domaine, il existe en effet.
Et si nous utilisions, pas le CS50 appareil, mais un Mac plus familier ou
PC, il s'avère que nous avons pu en effet ouvrir ce fichier CSV avec un plus
programme familier comme Excel ou Numbers.