| · Portal |
Help
Search
Members
Calendar
|
| Welcome Guest ( Log In | Register ) | Resend Validation Email |
![]() ![]() ![]() |
| _DRC_ |
Posted: May 21 2006, 11:26 PM
|
|
Newbie Group: Members Posts: 3 Member No.: 19 Joined: 1-April 06 |
Boas ppl!
Estou a fazer um programa, em c, que carrega todos os dados de um ficheiro para um array de estruturas. Depois os dados são geridos no array, mas o problema está em saber o número de dados no ficheiro para poder definir o tamanho do array. #include <stdio.h> #include <string.h> #include <stdlib.h> #define TAM 50 // ...::: criação de um novo tipo de dados :::... typedef struct{ char nome[TAM]; int num; }tdados; /*<------------------------------------------------------------>*/ // ...::: declaração de variaveis/ficheiro globais :::... FILE *fp; int max=0; tdados alunos[1000000]; /*<------------------------------------------------------------>*/ // ...::: abertura do ficheiro para leitura e escrita,e carregamento do ficheiro para um array :::... int abir(){ int i=0,j=0; char ch,num2[TAM]; if(NULL!=(fp=fopen("dados.txt","a+"))){ while((num2[j]=fgetc(fp))!=EOF){ do{ j++; }while((num2[j]=fgetc(fp))!='\n'); alunos[i].num=atoi(num2); // atoi faz a conversão de texto para inteiro j=0; while((ch=fgetc(fp))!='\n'){ alunos[i].nome[j]=ch; j++; } j=0; i++; } } max=i;//guarda o numero de registos fcloseall(); if(NULL==(fp=fopen("dados.txt","w+")))return(1); return(0); } /*<------------------------------------------------------------>*/ //...::: Armazenamento dos dados no ficheiro e fecho do proprio :::... void sair(){ int i,j=0; for(i=0;i<max;i++){ fprintf(fp,"%d",alunos[i].num); fprintf(fp,"%c",'\n'); j=0; do{ fprintf(fp,"%c",alunos[i].nome[j]); j++; }while(alunos[i].nome[j]!='\0'); fprintf(fp,"%c",'\n'); } flushall(); fcloseall(); } /*<------------------------------------------------------------>*/ inté, fiquem bem! |
![]() |
![]() ![]() ![]() |