quinta-feira, 21 de abril de 2011

Operações com Arquivo




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

using namespace std;

void criaArq(){
    FILE *fp;
    fp = fopen("aquivo.txt","w");
    if((fp=fopen("aquivo.txt","w")) == NULL){
        cout<<"nao foi possivel abrir o arquivo"<<endl;
        exit(1);
    }
    fclose(fp);
}
void escreveArq(){
    int numero;
    FILE *fp;
    fp = fopen("aquivo.txt","a");

    printf("Entre com os numeros a serem gravados no arquivo:\n");
    do{
        scanf("%d",&numero);
        fprintf(fp,"%d\n",numero);
    }while(numero != 0);
    fclose(fp);
}

void ordenar(int v[], int tam){
 int aux;
 for (int i=0; i<tam;i++){
  for(int j=0; j<tam-1;j++){
   if(v[i] < v[j]){
    aux = v[i];
    v[i] = v[j];
    v[j] = aux;
            }
        }
    }
}

int leiaArq(int vOrdenado[]){
int numero, i = 0;
FILE *fp;
fp = fopen("aquivo.txt","r");
do{
    fscanf(fp,"%d",&numero);
    vOrdenado[i] = numero;
    i++;
}while(numero != 0);

ordenar(vOrdenado, i);

fclose(fp);
return i;
}

void escreveResultado(int v[], int tam){
   FILE *fp;
   fp = fopen("saida.txt","w");
   for (int i=0; i<tam; i++){
      fprintf(fp,"%d\n",v[i]);
   }
   fclose(fp);
}

int main(){
    int vOrdenado[100], tam;
    criaArq();
    escreveArq();
    tam = leiaArq(vOrdenado);
    escreveResultado(vOrdenado, tam);
    system("saida.txt");
    return 0;
}

0 comentários:

Postar um comentário