Aula 2 ­ C Prof. André Luis Meneses Silva [email protected] strufs.wordpress.com Agenda Bibliotecas C++ Curiosidades sobre #define Bibliotecas C++ Biblioteca Aplicações assert.h Utilizada para debug ctype.h Utilizada para teste e conversão de caracteres float.h Define os valores máximos e mínimos relacionados a um float. limits.h Define características dos demais tipos primitivos locale.h Utilizado para trabalhar com informações de localização math.h Define um conjunto de funções matemáticas Bibliotecas C++ Biblioteca Aplicações stdarg.h Macros para lidar com argumentos de funções stdio.h Define funções de I/O stdlib.h Define funções de conversão, funções matemáticas, funções que lida com a memória string.h Define funções para manipular strings time.h Define funções e estruturas para manipular tempo. math.h Define um conjunto de funções matemáticas assert.h Métodos: void assert(int expression); exemplo_assert; ctype.h Métodos int isalnum(int character); int isalpha(int character); int iscntrl(int character); int isdigit(int character); int isgraph(int character); int islower(int character); int isprint(int character); int ispunct(int character); ctype.h Métodos int isspace(int character); int isupper(int character); int isxdigit(int character); int tolower(int character); int toupper(int character); exemplo_ctype float.h Define uma série de constantes para float: FLT_ROUNDS FLT_RADIX Define a representação da base do expoente. FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG Define o meio de arredondar um número Define o número de dígitos em um número float.h FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP FLT_MAX, DBL_MAX, LDBL_MAX Valor máximo de ponto flutuante. FLT_MIN, DBL_MIN, LDBL_MIN O menor valor negativo de um expoente. Menor valor de ponto flutuante. limits.h Define os limites das demais variáveis. CHAR_BIT SCHAR_MIN, SCHAR_MAX Valores mínimos e máximos de um char com sinal. CHAR_MIN, CHAR_MAX Número de bits em um byte. Valores mínimos e máximos de um char (com ou sem sinal) UCHAR_MAX Valor máximo de char sem sinal. limits.h SHRT_MIN, SHRT_MAX, USHRT_MAX INT_MIN, INT_MAX, UINT_MAX Valor mínimo e máximo do int e valor máximo do unsigned int. LONG_MIN, LONG_MAX, ULONG_MAX Valor mínimo e máximo do short e valor máximo do unsigned short. Valor mínimo e máximo do long e valor máximo do unsigned long. locale.h Funções char *setlocale(int category, const char *locale); Modifica ou lê informações dependentes de localização category LC_ALL Modifica tudo LC_CTYPE Modifica funções de caractere. LC_MONETARY LC_NUMERIC Modifica informações de ponto decimal LC_TIME Modifica informações monetárias Modifica informações relativa ao tempo. locale “C” → Modifica locale para as configurações de C “” → Modifica locale para as configurações do S.O. locale.h lconv *localeconv(void); Fornece uma estrutura lconv para representar as configurações locais atuais. struct lconv; exemplo_locale; math.h double acos(double x), double asin(double x), double atan(double x); double cos(double x); double sin(double x); double cosh(double x); double sinh(double x); Arco coseno, arco seno e arco tangente Cosseno, seno, cosseno hiperbólico e seno hiperbólico. math.h double tan(double x); double tanh(double x); double exp(double x); double log(double x); double log10(double x); Log natural e log10 double pow(double x, double y); Tangente, tangente hiperbólico e e^x. x ^ y double sqrt(double x); Raiz quadrada; math.h double ceil(double x); double fabs(double x); Função chão double fmod(double x, double y); Valor absoluto double floor(double x); Função teto Resto da divisão entre x e y. stdarg.h Definem métodos para manipular funções cujo número de parâmetros é desconhecido. void va_start(va_list ap, last_arg); type va_arg(va_list ap, type); Inicializa ap para uso com as macros va_arg e va_end. Itera nos parâmetros. stdarg.h void va_end(va_list ap); Uso obrigatório, faz com que uma função com va_start retorne. typedef va_list exemplo_stdarg stdio.h Definem as funções de I/O int printf(const char *format, ...); d, I → o → unsigned octal u → unsigned em decimal x → usingned em hexadecimal f → e, E → número com expoente C → char. s inteiro com sinal double → ponteiro para array (usado para string) p → Imprime o valor de um ponteiro stdio.h int sprintf(char *str, const char *format, ...); int scanf(const char *format, ...); Escreve em uma string. Lê da entrada padrão exemplo_printf_scanf stdio.h Outras funções para manipular o I/O padrão: int getchar(void); char *gets(char *str); Escreve um único caractere; int puts(const char *str); Captura uma string int putchar(int char); Captura um único caractere Escreve uma string; exemplo_put_get; stdio.h Muitas outras funções Manipulação de arquivos: fclose, fflush, fgetpos, fopen, fread, freopen, fseek, fsetpos, ftell, fwrite, remove, rename, rewind, setbuf, setvbuf, tmpfile, fgetc, fgets, fputc, fputs, getc, etc. stdlib.h Funções double atof(const char *str); int atoi(const char *str); long int atol(const char *str); void *malloc(size_t size); Aloca uma região de memória e retorna um ponteiro para esta região. void free(void *ptr); Transforma um alfa em double, int ou long int, respectivamente. Desaloca a região de memória alocada anteriormente. exemplo_atof_alloc; stdlib.h void abort(void); int atexit(void (*func)(void)); Faz com que a função seja chamada quando o programa termina normalmente. void exit(int status); Causa interrupção anormal do programa. Causa o fim normal do programa. stdlib.h char *getenv(const char *name); int system(const char *string); Busca as variáveis do ambiente e retorna o valor apontado por ela. Chamada ao sistema operacional. exemplo_environment; stdlib.h void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)); void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar) (const void *, const void *)); exemplo_qsort_bsearch stdlib.h int abs(int x); int rand(void); Número randômico void srand(unsigned int seed); Valor absoluto Semente string.h void *memcpy(void *str1, const void *str2, size_t n); char *strcat(char *str1, const char *str2); int strcmp(const char *str1, const char *str2); char *strcpy(char *str1, const char *str2); size_t strlen(const char *str); time.h time_t char *asctime(const struct tm *timeptr); Tipo para representar tempo. Retorna um ponteiro para uma string que representa o dia e o tempo da estrutura timeptr. exemplo_time_01 time.h clock_t clock_t clock(void); Tipo para representar tempo com maior precisão. Retorna o tempo do processador. exemplo_time_02; Referências The C Library Reference Guide http://www.acm.uiuc.edu/webmonkeys/book/c_guide/