Isso mesmo, você esta indo muito bem!
Certo, vamos lá, um uma estrutura de laço serve para executar um bloco de código por um determinado número de vezes, o mais simples de se usar é o “for”, veja:
A estrutura básica para o “for” funcionar é essa, precisamos primeiro declarar uma variável inteira, após isso teremos que informar o valor inicial dessa variável, no nosso caso 0, dizer qual será o intervalo que queremos que seja executado o nosso código, nesse caso até quando o valor da nossa variável i for menor que 5 por fim dizer se a nossa variável será incrementada (++) ou decrementada (–), nesse caso será incrementada até chegar ao valor 5.
Obs: Caso nossa variável fosse decrementada o nosso código entraria em um loop infinito, pois começaria no 0, iria decrementar e nunca chegaria ao valor de parada pois todos os valores subsequentes seria sempre menores que 5.
Nesse exemplo o computador me retorna os valores de 0 até 4, pois todos esses valores são menores que que 5, quando chegasse ao 5 ele iria compara, 5 é menor que 5? Não, encerra-se aqui.
Bem, voltando ao seu código, fiz algumas alterações no seu código, ele ficou assim:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void) {
setlocale(LC_ALL, "Portuguese");
char nome[20];
char nota[20];
int i;
// criando a variável ponteiro para o arquivo
FILE *pont_arq;
//abrindo o arquivo
pont_arq = fopen("arquivo.txt", "w+");
for(i = 0; i < 5; i++){
printf("\nEstudante número %d:", i+1);
printf("\nEntre com o nome: ");
scanf("%s", nome);
printf("Entre com a nota: ");
scanf("%s", nota);
//escrevendo no arquivo
fputs("Nome: ", pont_arq);
fputs(nome, pont_arq);
fputs(", Nota: ", pont_arq);
fputs(nota, pont_arq);
fputs("\n", pont_arq);
}
// fechando arquivo
fclose(pont_arq);
//mensagem para o usuário
printf("\nArquivo Gerado!");
system("pause");
}
Transformei o nome e a nota em vetores de caracteres para ficar melhor na hora de escrever no arquivo.
Mudei o pont_arq = fopen("arquivo.txt", "a");
para pont_arq = fopen("arquivo.txt", "w+");
, o “w+” passa para o comando as informações que queremos criar um arquivo texto para leitura e gravação.
Fiz um “for” na parte onde os dados são inseridos. Nessa parte eu adicionei a função fputs
, aquela que eu tinha te falado, vi que você esqueceu de colocar, sem ela não conseguimos escrever no arquivo, com ela eu fui passando cada parte do texto uma por uma.
Depois disso o programa fecha o arquivo e printa uma mensagem: “Arquivo Gerado!”.
É isso!