mirror of
https://gitlab.com/blau_araujo/cblc.git
synced 2025-11-13 02:11:17 -03:00
Inicio do exercicio da Aula 15 #26
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objetivo: Criar um programa que recebe 1 ou 2 argumentos. Sendo um dos argumentos uma opção e o outro o nome de um arquivo.
Opções:
-o = escrever do zero (w)
-a = abrir com modo (a)
padrão vale o w, existente.
Esboço do programa criado em sala:
Minha solução...
Não mudei quase nada da ideia de vocês na aula, só apliquei as minhas sugestões:
Compilação e testes:
O ponto principal que eu observo é a falta de método. Veja, eu só começo a escrever quando tenho um esboço decidido, mesmo que tenha que mudar ao longo da implementação, por exemplo...
Função
parse_arg:enum Option);switch-casee comparado com as constantes daenum.-a,-qou-h;'-'é erro;Implementação:
Ações dependentes da quantidade de argumentos...
Se
argcfor igual a 1 ou maior que 3: termina com erro.Se
argcfor igual a 2, o argumento só pode ser-hou o nome do arquivo.parse_argeswitch:-h, imprime ajuda e sai com sucesso;-, sai com erro;char *fileechar *mode("w").Implementação:
argcfor igual a 3, testar cada opção (em loop).switchcomparando com o retorno deparse_arg.char *filese ainda não definido (file = NULL);-o, define o modo como"w", se ainda não definido (mode = NULL);-a, define o modo como"a", se ainda não definido (mode = NULL);-h, imprime ajuda e termina com sucesso;NULL, termina com erro.Implementação:
Melhorias interessantes
"Tecle Ctrl+D para terminar...\n";"> "no início de cada linha;":q".Resolvi o exercício mas não segui todos os requisitos.
Saídas:
Acabei refazendo tbm e decidi usar uma abordagem diferente: