Pular para o conteúdo

Usando a biblioteca readline

A biblioteca readline, a mesma usada pelo bash, serve, como o nome diz, para ler linhas. Ela porém faz mais que isso: permite edição total da linha a ser lida, permite manter histórico de linhas lidas, salvar histórico, recuperar histórico, e muitas outras coisas. Vou mostrar nesse script um pouco do que ela oferece.<br>
Obs.: Para compilar use: gcc -o arq arq.c -lreadline -lncurses
Perfil removido removido
Hits: 11.729 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

A biblioteca readline, a mesma usada pelo bash, serve, como o nome diz, para ler linhas. Ela porém faz mais que isso: permite edição total da linha a ser lida, permite manter histórico de linhas lidas, salvar histórico, recuperar histórico, e muitas outras coisas. Vou mostrar nesse script um pouco do que ela oferece.<br>
Obs.: Para compilar use: gcc -o arq arq.c -lreadline -lncurses
Download teste.c Enviar nova versão

Esconder código-fonte

#include < stdio.h><br>
#include < readline/readline.h><br>
#include < readline/history.h><br>
<br>
main()<br>
{<br>
     char *s = (char *) 1;<br>
     int n = 0, sair = 0;<br>
<br>
     printf("Teste da biblioteca readline. Para sair entre com uma linha vazia\n\n");<br>
<br>
     read_history("/tmp/historico"); /* le o histórico do arquivo, se o arquivo existir */<br>
     using_history(); /* habilita o uso do histórico */<br>
<br>
     do {<br>
         /* o argumento da readline é o prompt a ser exibido<br>
           se o argumento for NULL, nenhum prompt é exibido */<br>
         s = readline("\\>"); <br>
<br>
         if ( *s ) /* para ignorar linhas em branco */<br>
         {<br>
             add_history(s); /* adiciona a linha lida ao histórico */<br>
             n++; /* para ser usada na função append_history abaixo */<br>
<br>
             /* aqui você pode fazer o que quizer com a linha lida */<br>
             printf("linha lida: %s\n", s);<br>
<br>
             /* e depois liberar a memória alocada pela readline */<br>
             free(s);<br>
         }<br>
         else<br>
             sair = 1;<br>
     } while ( !sair );<br>
<br>
     /* se o arquivo existir adiciona n linhas do histórico ao arquivo,<br>
       caso contrário escreve todo o histórico no arquivo */<br>
     if ( append_history(n, "/tmp/historico") != 0 )<br>
         write_history("/tmp/historico");<br>
<br>
     exit(0);<br>
}<br>
<br>

pegavalor.c - Interação com usuário

PALINDROME

Estrutura de dados - cadeia

Algoritmo de ordenação: Selection Sort

Semi Pronto (C++)

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.