@devair1010 oi, cara , eu fiz desse jeito, so uma parte do codigo, eu gravei os dados no arquivo e fiz uma função para ler o mesmo, no entato eu estou lendo pelo fgets, que está transformando ate os numeros inteiros em strings. você me segere outra forma? eu nao consegui pelo fscanf
void flush(){
int c;
while((c = fgetc(stdin)) != EOF && c != '\n'){}
}
void gravararquivo(){
FILE *p;
char nome[30];
char sexo;
int idade;
int numero;
int i;
int n;
p = fopen("entrada.txt", "w");
if(p == NULL){
printf("Erro no arquivo!");
}
else{
printf("Digite a quantidade de pessoas que quer armazenar no arquivo: ");
scanf("%d", &numero);
fprintf(p, "%d\n", numero);
for(i=0; i<numero;i++){
printf("Digite um nome: ");
flush();
gets(nome);
printf("Digite o sexo: ");
scanf("%c", &sexo);
printf("Digite a idade: ");
scanf("%d", &idade);
fprintf(p, "%c %s %d\n ", toupper(sexo), nome, idade);
}
}
fclose(p);
}
void lerarquivo(){
FILE *p;
char tamanho[100];
p = fopen("entrada.txt", "r");
if(p == NULL){
printf("Arquivo nao encontrado!");
}
else{
while(!feof(p)){
fgets(tamanho, 100, p);
printf("%s", tamanho);
}
}
}