Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * file.c
- *
- * Carlos Rodrigues
- *
- * Programa que abre um ficheiro, le ou grava nele, mediante opcao digitada pelo usuario
- */
- #include <cs50.h>
- #include <stdio.h>
- #include <string.h>
- //GLOBAL VARIABLES
- FILE *fp;
- int main(void)
- {
- //limpa a tela do shell ou prompt
- system("clear || cls");
- //mensagem inicial do programa, para escolha
- printf("Deseja escrever ou ler no ficheiro. Digite (1) ESCREVER | (2) LER \n >");
- //recebe a escolha do usuario
- int esc = GetInt();
- //limpa a tela do shell ou prompt
- system("clear || cls");
- //condicao de escolha (1) ou (2)
- switch(esc)
- {
- //#######Caso usuario selecione 1#######
- case 1:
- //abrimos um arquvo ou criamos um novo, caso nao exista ainda, "w" cria o arquivo, se existente!
- fp = fopen("doc.txt", "a+");
- //verificar se existiu algum erro na abertura do ficheiro
- if (fp == NULL)
- {
- //retorna um erro, interrompendo o programa
- return 1;
- }
- //laço para o usuario inserir o pretendido.
- while (true)
- {
- printf("Enter a new line of text in the file, (q) to quit the file: ");
- string input = GetString();
- if (input != NULL && strcmp(input, "q") == 0)
- {
- //termina o programa
- break;
- }
- else
- {
- //funcao que escreve dentro do arquivo
- fputs(input, fp);
- }
- }
- //mensagem ao terminar o programa
- printf("O programa vai terminar...\n");
- //termina case 1
- break;
- //#######Caso usuario selecione 2#######
- case 2:
- //abrimos um arquvo para leitura apenas
- fp = fopen("doc.txt", "r");
- //verificar se existiu algum erro na abertura do ficheiro
- if (fp == NULL)
- {
- //retorna um erro, interrompendo o programa
- return 1;
- }
- //grava espaço para cada linha de texto
- char space[256];
- for (int i = 1; fgets(space, sizeof(space), fp) != NULL; i++)
- {
- printf("LINE %02d: %s\n",i, space);
- }
- //termina case 2
- break;
- default:
- //ultima opcao, caso o usuario nao digite uma valida
- printf("Digitou uma opcao invalida.\n");
- }
- //fecha o arquivo aberto, caso tenha sido aberto
- if (fp != NULL)
- {
- fclose(fp);
- //liberta memoria alocada, caso tenha sido alocada
- free(fp);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment