Jump to content

Recommended Posts

Posted

tenho o seguinte código:

#include<stdlib.h>
#include<string.h>
#include<stdio.h>

int j=0,resposta,i,ch;

typedef struct {
    int numero;
    float nota;
    char nome[50];
}ALUNOS;

ALUNOS aluno[100];

void escrita(int j, int resposta, int i)
{
    FILE*fp;
    char lixo;
    j=0;
    do{
        printf("Introduza o numero do Aluno: \n");
        scanf("%d", &aluno[j].numero);
        printf("Introduza o nome do Aluno: \n");
        lixo=getchar();
        scanf("%s", &aluno[j].nome);
        j++;
        printf("Quer Continuar? Sim=1/Não=0\n");
        scanf("%d", &resposta);
    }while(resposta == 1);
    fp=fopen("pautas.txt", "a+");
    for (i=0;i<j;i++)
    {
        fprintf(fp, "Aluno[%d].numero= %d\n", i, aluno[i].numero);
        fprintf(fp, "Aluno[%d].nome= %s\n", i, aluno[i].nome);
    }
    fclose(fp);
}

void leitura(int i, int j)
{
    FILE *fp;
    i=0;
    fp=fopen("pautas.txt", "r");
    do
    {
        printf("Aluno[%d].numero=%d\n", i, aluno[i].numero);
        printf("Aluno[%d].numero=%s\n", i, aluno[i].nome);
        i++;
    }
    while(ch!=(!feof));
    fclose(fp);
}



main()
{
      escrita(j,resposta,i);
      leitura(i, j);
      system("pause");
}

-> a função void escrita basicamente recebe o nome e numero e copia para o ficheiro.

-> a função void leitura le o conteudo do ficheiro.

So k se compilarem o codigo podem xegar a um ficheiro tipo este:

Aluno[0].numero= 0

Aluno[0].nome= 3

Aluno[1].numero= 0

Aluno[1].nome= 2

Aluno[0].numero= 0

Aluno[0].nome= uis

Aluno[0].numero= 1

Aluno[0].nome= a

Aluno[1].numero= 2

Aluno[1].nome= b

Aluno[0].numero= 0

Aluno[0].nome= uis

e supostamente se o codigo estivesse correto devia apresentar isto:

Aluno[0].numero= 0

Aluno[0].nome= 3

Aluno[1].numero= 0

Aluno[1].nome= 2

Aluno[2].numero= 0

Aluno[2].nome= uis

Aluno[3].numero= 1

Aluno[3].nome= a

Aluno[4].numero= 2

Aluno[4].nome= b

Aluno[5].numero= 0

Aluno[5].nome= uis

esta situação segundo calculo deve-se ao facto k o codigo nao esta a carregar a informação do ficheiro para o programa corretamente e este pelo facto de nao encontrar informação anterior apenas trabalha com a informação dada desde a abertura do mesmo...

pesso k corrijam o meu codigo...

e muito importante para o meu trabalho

Posted
void leitura(int i, int j)
{
    FILE *fp;
    i=0;
    fp=fopen("pautas.txt", "r");
    do
    {
        printf("Aluno[%d].numero=%d\n", i, aluno[i].numero);
        printf("Aluno[%d].numero=%s\n", i, aluno[i].nome);
        i++;
    }
    while(ch!=(!feof));
    fclose(fp);
}

isto é mm a tua função que faz a leitura do ficheiro ou enganaste-te ao fazer o post?

Posted

Presumo que ele se está a referir ao facto de as funções *printf servirem para escrever, e não para ler, e que o ficheiro foi aberto para leitura.

E já agora, que ch não é afectado em lado nenhum.

Desaparecido.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.