ALTAVEU 1: Anem a escriure un programa que sol · licita a l'usuari els noms i cases de tres estudiants. Però en lloc de només imprimir el seu noms i cases a la pantalla, anem a en lloc guardar aquesta informació en el disc. En altres paraules, crearem, per exemple, un fitxer CSV arxiu, per als valors separats per comes, que en realitat és només un arxiu de text que programes com Excel o números pot obrir, i efectivament salvar els noms i les cases de forma permanent perquè podem revisar més tard. Per a això, primer anem a fer una ullada a algun codi repetitiu que tinc començat amb ja. Noti primer que entre les capçaleres sobre de la tapa és ara lib.h norma que passa a tenir algunes funcions relacionades per presentar d'E / S, entrada i sortida d'arxius. Fixa't que jo també he declarat una constant anomenada ESTUDIANTS - en totes les tapes - el valor es codifica dur com tres. Noti ara que dins del meu principal programa, estic declarant un arranjament de La mida de tres usant que constant anomenada ESTUDIANTS cada un dels membres és de escrigui els estudiants. Recordem ara que un estudiant que definirà com tenir un nom i una casa de dues que són cadenes com per aquesta Declaració es donen instruccions, punt h. Ara, de tornada a structs1.c, observi que han un bucle aquí que va a iterar des de zero fins a tres. Es demanarà confirmació en un estudiant de nom i la casa d'un estudiant una i altra vegada i una altra. Després en la part inferior d'aquest programa, adonar que tinc un altre bucle for això va a alliberar de l'estudiant ITH nom i la casa de l'estudiant i en un construït de manera similar bucle. Per estar segurs, podem combinar aquests bucles en un de sol, però jo volia tenir alguns segments diferents de codi pel bé de la discussió aquí. Ara entre els bucles for, anem a en realitat tenen els altres, i d'aquest propòsit en la vida és salvar tota la realitat d'aquests noms i les cases que estan actualment a la memòria RAM en el disc en forma de valors separats per comes. Per a això, utilitzarem tres noves funcions - F oberta, F printf i F de prop, el que obrir un arxiu, imprimir en un arxiu, i tancar un arxiu. Podem usar-los com segueix. FILE, en majúscules, que és una cosa de una curiositat en C, FILE es fopen , Entre cometes i ara un nom per al presentar, per exemple, students.CSV, però vaig poder cridar gairebé qualsevol cosa, coma i ara estic va a especificar un únic w interior de cometes dobles. W, com ja hauran endevinat ja, vol dir que fopen ha d'obrir aquest arxiu anomenat Students.CSV per escriure de manera que en realitat podem estalviar alguns continguts a la mateixa. Anem proper xec si el fitxer no és igual a nul. Perquè si ho és, alguna cosa té probablement anat malament en aquest cas es no ha de procedir a tractar imprimir res a ella. Però si no és nul, dins del claus que repetiré d'i és igual a 0 en un màxim de ESTUDIANTS, i jo vaig a Increment de i en cada iteració. I dins d'aquest bucle, vaig a fprintf fi d'imprimir en un arxiu - específicament l'un Ja vaig obrir - una cadena que té aquest% s,% s barra invertida n Tancament de cometes. I ara vull connectar a cada un els marcadors de posició dels valors reals del nom d'un estudiant i una casa usant l'operador punt. I.name suport d'Estudiants, estudiants i.house suport prop parin punt i coma. Ara per sota d'aquest bucle, estic simplement Trucaré a fclose d'arxiu per tal en última instància, per tancar l'arxiu. Ara quan executo aquest programa, que no hauria realment veure res a la pantalla, però hauria d'haver fet després de córrer aquest programa un arxiu anomenat Students.CSV en el mateix directori que Executar la comanda en què s'ha contenir una separada per comes llista de valors. Anem a fer una ullada. Fer les estructures 1. / Structs1 de l'estudiant nom, diguem que David, viurà en Mather. El nom de l'estudiant, diguem, Lauren, viurà en Leverett. El nom de l'estudiant, diguem, Rob, viurà en Kirkland. Ara, de nou, com era d'esperar, no apareix res haver succeït, però permetin-me vagi per davant en l'indicatiu i escriviu g edició students.CSV amb l'esperança que aquest arxiu en veritat existeix. Gedit students.CSV ENTER, i de fet, compte que un arxiu que conté purament text, sinó de text separat per comes per a cada camp, de fet existeix. I si estàvem utilitzant, no el CS50 aparell, però un Mac més familiar o PC, resulta que podríem de fet obrir el fitxer CSV amb una més programa familiar com Excel o Numbers.