carlosrodrigues

file.c

Feb 19th, 2014
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.89 KB | None | 0 0
  1. /**
  2.  * file.c
  3.  *
  4.  * Carlos Rodrigues
  5.  *
  6.  * Programa que abre um ficheiro, le ou grava nele, mediante opcao digitada pelo usuario
  7.  */  
  8. #include <cs50.h>
  9. #include <stdio.h>
  10. #include <string.h>
  11.  
  12. //GLOBAL VARIABLES
  13. FILE *fp;
  14.  
  15.  
  16. int main(void)
  17. {
  18.   //limpa a tela do shell ou prompt
  19.   system("clear || cls");
  20.  
  21.   //mensagem inicial do programa, para escolha  
  22.   printf("Deseja escrever ou ler no ficheiro. Digite (1) ESCREVER | (2) LER \n >");
  23.  
  24.   //recebe a escolha do usuario
  25.   int esc = GetInt();
  26.  
  27.   //limpa a tela do shell ou prompt
  28.   system("clear || cls");
  29.  
  30.   //condicao de escolha (1) ou (2)
  31.   switch(esc)
  32.   {
  33.   //#######Caso usuario selecione 1#######
  34.   case 1:
  35.           //abrimos um arquvo ou criamos um novo, caso nao exista ainda, "w" cria o arquivo, se existente!
  36.          
  37.           fp = fopen("doc.txt", "a+");
  38.          
  39.           //verificar se existiu algum erro na abertura do ficheiro
  40.           if (fp == NULL)
  41.           {
  42.              //retorna um erro, interrompendo o programa
  43.              return 1;
  44.           }
  45.          
  46.           //laço para o usuario inserir o pretendido.  
  47.           while (true)
  48.           {
  49.                printf("Enter a new line of text in the file, (q) to quit the file: ");
  50.                string input = GetString();
  51.                
  52.                          
  53.                if (input != NULL && strcmp(input, "q") == 0)
  54.                {
  55.                   //termina o programa
  56.                   break;
  57.                }
  58.                else
  59.                {
  60.                    //funcao que escreve dentro do arquivo
  61.                    fputs(input, fp);
  62.                }
  63.            }
  64.          
  65.           //mensagem ao terminar o programa
  66.           printf("O programa vai terminar...\n");
  67.          
  68.           //termina case 1
  69.           break;        
  70.          
  71.   //#######Caso usuario selecione 2#######
  72.   case 2:  
  73.           //abrimos um arquvo para leitura apenas
  74.          
  75.           fp = fopen("doc.txt", "r");
  76.          
  77.           //verificar se existiu algum erro na abertura do ficheiro
  78.           if (fp == NULL)
  79.           {
  80.              //retorna um erro, interrompendo o programa
  81.              return 1;
  82.           }
  83.          
  84.           //grava espaço para cada linha de texto
  85.           char space[256];
  86.          
  87.           for (int i = 1; fgets(space, sizeof(space), fp) != NULL; i++)
  88.           {
  89.                printf("LINE %02d: %s\n",i, space);
  90.           }
  91.          
  92.           //termina case 2
  93.           break;
  94.          
  95.   default:
  96.            //ultima opcao, caso o usuario nao digite uma valida
  97.            printf("Digitou uma opcao invalida.\n");
  98.                
  99.   }
  100.      
  101.   //fecha o arquivo aberto, caso tenha sido aberto
  102.   if (fp != NULL)
  103.   {
  104.      fclose(fp);
  105.      
  106.      //liberta memoria alocada, caso tenha sido alocada
  107.      free(fp);
  108.   }  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment