luiscastro Posted May 15, 2009 at 05:24 PM Report #264464 Posted May 15, 2009 at 05:24 PM 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= 0Aluno[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= 0Aluno[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
nata79 Posted May 15, 2009 at 06:47 PM Report #264489 Posted May 15, 2009 at 06:47 PM 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? arithmeticoverflow.wordpress.com
luiscastro Posted May 17, 2009 at 10:59 AM Author Report #264781 Posted May 17, 2009 at 10:59 AM eu tirei o codigo da net....eu tb axu xtranho ser um printf e nao um fprintf...penso que é a isso que te referes..
TheDark Posted May 17, 2009 at 07:50 PM Report #264909 Posted May 17, 2009 at 07:50 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now