>> COLUNA 1: Vamos escrever um programa que solicita ao usuário os nomes e
casas de três alunos.
Mas em vez de apenas imprimir o seu nomes e casas para a tela, vamos
em vez salvar as informações para o disco.
Em outras palavras, vamos criar, por exemplo, um arquivo CSV arquivo, para valores separados por vírgulas,
que na verdade é apenas um arquivo de texto que programas como o Excel ou Numbers
pode abrir e, efetivamente, salvar aqueles nomes e casas permanentemente de modo que
podemos revê-las mais tarde.
>> Para isso, vamos primeiro dar uma olhada algum código clichê que eu tenho
começou com já.
Observe primeiro que entre os cabeçalhos lá em cima é agora lib.h padrão que
acontece de ter algumas funções relacionadas para o arquivo I / O, arquivo de entrada e saída.
Repare que eu também já declarou uma constante chamada ESTUDANTES -
em todos os tampões - cujo valor é codificado como três.
Observe agora que dentro do meu principal programa, estou declarando uma matriz de
tamanho três usando essa constante chamada Alunos cada de cujos membros é de
digite alunos.
>> Lembre-se agora que um estudante vamos definir como possuindo um nome e uma casa ambos
que são cadeias de caracteres como por este declaração instrui, ponto h.
Agora, de volta em structs1.c, perceber que eu ter um loop for aqui que vai
iteração de zero até três.
Vai me levar para um estudante de nome ea casa de um estudante
novo e de novo e de novo.
>> Em seguida, na parte inferior deste programa, perceber que eu tenho um outro loop
que vai libertar o aluno om nome ea casa do estudante om em um
construídas de forma semelhante circuito.
Para ter certeza, podemos combinar esses laços em apenas um, mas eu queria
tem alguns segmentos distintos de código por uma questão de discussão aqui.
>> Agora, entre os loops, vamos realmente tem outra, e esta aqui é
propósito na vida é realmente salvar todos desses nomes e as casas que estão
atualmente na RAM para o disco na forma de valores separados por vírgulas.
Para isso, vamos usar três novas funções -
F aberto, F printf, e F próximo, que abrir um arquivo, imprimir em um arquivo, e
fechar um arquivo.
Podemos usá-los como se segue.
>> FILE, em todas as tampas, o que é um pouco de uma curiosidade em C, arquivo é fopen
unquote citação e agora um nome para o arquivo, digamos, students.CSV, mas eu podia
chamá-lo de mais nada, vírgula e agora estou indo para especificar um único w dentro
de aspas duplas.
W, como você já deve ter adivinhado, significa que fopen deve abrir este arquivo
Students.CSV chamado para escrever assim que podemos realmente poupar algum
conteúdo para ele.
>> Vamos próximo cheque se o arquivo não é igual a nulo.
Porque se for, alguma coisa tem, provavelmente, errado, caso em que nós
não deve prosseguir para tentar para imprimir qualquer coisa a ele.
Mas se não é nulo, em seguida, dentro do chaves que eu vou fazer uma iteração
de i é igual a 0 em até ESTUDANTES, e eu vou
incrementar i em cada iteração.
E dentro deste loop, eu vou fprintf, de modo a imprimir em um arquivo -
especificamente a um Eu já aberto -
uma string que parece com este% s,% s barra invertida n quote perto.
>> E agora eu quero ligar para cada um dos esses espaços reservados os valores reais
do nome de um aluno e uma casa usando o operador ponto.
Alunos suporte i.name, estudantes paren suporte i.house perto
-e-vírgula.
Agora abaixo deste loop for, eu estou simplesmente vai chamar fclose de arquivo em ordem
para, finalmente, fechar o arquivo.
>> Agora, quando eu executar este programa, eu não deveria realmente ver nada no
tela, mas eu deveria ter depois de correr este programa um arquivo chamado
Students.CSV no mesmo diretório que Eu executar o comando em que deveria
conter uma vírgula separados lista de valores.
Vamos dar uma olhada.
>> Fazer estruturas 1. / Aluno structs1 nomear, digamos David,
ele vai viver em Mather.
Nome do aluno, vamos dizer, Lauren, ela vai viver em Leverett.
Nome do aluno, digamos, Rob, ele vai viver em Kirkland.
Agora, de novo, como esperado, não aparece nada ter acontecido, mas deixe-me
vá em frente no prompt de comando e digite g edição students.CSV na esperança de que
esse arquivo realmente existe.
>> Gedit students.CSV ENTER e, de fato, perceber que um arquivo contendo puramente
texto, mas o texto separados por vírgulas para cada campo, de fato existe.
E se estivéssemos usando, e não o CS50 aparelho, mas um Mac mais familiar ou
PC, verifica-se que poderíamos de fato abrir este arquivo CSV com um mais
programa conhecido como o Excel ou Numbers.