Programas Úteis

Esta seção conterá pequenos programas, que em muitos casos são simples, mas ainda sim úteis.

Leitura de senha em C

/* senha.c */
 
#include <unistd.h>
#include <termios.h>
#include <stdio.h>
#include <string.h>
 
void getsen(char * psSenha, int iTamanho )
{
  int i;
  char cLetra;
  struct termios stTerminalModificado;
  struct termios stTerminalOriginal;
 
  tcgetattr(0, &stTerminalModificado);
  stTerminalOriginal = stTerminalModificado;
 
  /* modifica o terminal para não ecoar na tela o que for digitado */
  stTerminalModificado.c_lflag&=~(ECHO|ICANON);
  stTerminalModificado.c_cc[VMIN]=1;
  stTerminalModificado.c_cc[VTIME]=0;
  tcsetattr(0, TCSAFLUSH, &stTerminalModificado);
 
  for( i=0; i< iTamanho -1; i++)
  {
    cLetra=getchar();
    if (cLetra == '\n')
      break;
    psSenha[i]=cLetra;
    fprintf(stderr, "*");
  }
  putchar ('\n');
  psSenha[i] = '\0';
 
  /* restaura ao status original */
  tcsetattr(0, TCSAFLUSH, &stTerminalOriginal);
  return;
}
 
int main(void)
{
   char sSenha[30];
   memset(sSenha,0, sizeof(sSenha));
   printf("\nEntre com a senha:");
   getsen(sSenha,30);
   printf("\nSenha digitada [%s]\n", sSenha);
   return 0;
}

Número ASCII do teclado

/* programa_util_001.c*/
#include <stdio.h>
 
int main(void)
{
 
   char cTeclado;
 
   /* fica lendo do teclado até que seja pressionado a tecla ESC */
   while((cTeclado=getchar())!=27)
   {
      printf("\n%c - %d", cTeclado, cTeclado);
   }
 
   return (0);
}

Tabela ASCII completa

/* programa_util_002.c */
#include <stdio.h>
 
int main(void)
{
 
   int iContador;
   /* imprime toda a tabela ASCII */
   for(iContador=0;iContador<256;iContador++)
   {
      printf("\t\t%03d = %c", iContador, iContador);
   }
   return (0);
}
programas_uteis.txt · Última modificação: 2009/05/10 16:32 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0