Aqui está um resumo das principais funções presentes nas bibliotecas da linguagem C.
Nem todas estão presentes em todos os compiladores, principalmente dos microcontroladores. Foram extraídas e com tradução livre da ajuda on-line do ambiente BorlandC++®.
Todo programa C e C++ deve ter a função main .
Três parâmetros (argumentos) são passados para main pela rotina de partida do programa: argc, argv, e env.
argc é um inteiro que indica o número de argumentos em linha de comando passados para main. Este valor nunca será menor que 1.
argv é um array (matriz) de ponteiros para strings (char *[ ]) que representam os argumentos passados. O primeiro argumento é sempre o caminho onde o programa está sendo executado.
env é um array (matriz) de ponteiros para strings. Cada elemento de env[ ] possui uma string no formato ENVVAR=valor, com as variáveis de ambiente do sistema operacional. Caso esteja rodando seu código no Windows, podem existir muitas variáveis de ambiente.
Exemplo:
Para rodar o código de exemplo, digite:”ex_main teste 123”. Troque “teste” e “123” por outras palavras e acrescente outras.
O executável deve rodar na linha de comando para ver sua funcionalidade.
Se rodar o programa no Windows, podem haver muitas variáveis de ambiente e assim a tela texto vai rolar.
O valor retornado por main deve ser o código de status do programa, normalmente 0 (zero), -1 ou 1.
Exemplo: int main (void)
Função |
Bibliot. |
observações / exemplos |
retorno |
void abort (void) |
stdlib.h |
Encerra (aborta) o programa e escreve a mensagem “Abnormal program termination” em stderr. |
retorna o código de retorno 3 para o processo pai ou para o sistema operacional |
int abs (int x) |
math.h |
|
retorna o valor absoluto do argumento x |
int access (const char *filename, int amode) |
io.h |
verifica se o arquivo “filename” existe e se ele pode ser lido, escrito ou executado, segundo o argumento amode: 06 permissão de leitura e escrita 04 permissão de leitura 02 permissão de escrita 01 permissão de execução (prog. executável) 00 se o arquivo existe |
se o acesso requisitado foi aceito, retorna 0, senão retorna -1 |
double acos (double x); |
math.h |
Calcula o arco cosseno de x |
Retorna o valor em radiano |
long double acosl (double x); |
math.h |
Versão long double do acos |
Retorna o valor em radiano |
double asin (double x); |
math.h |
Calcula o arco seno de x |
Retorna o valor em radiano |
long double asinl (double x); |
math.h |
Versão long double do asin |
Retorna o valor em radiano |
double atan (double x); |
math.h |
Calcula o arco tangente de x |
Retorna o valor em radiano |
long double atanl (double x); |
math.h |
Versão long double do atan |
Retorna o valor em radiano |
double atof (const char *s) |
math.h |
converte a string apontada por s para ponto flutuante |
retorna o valor em ponto flutuante da string apontada por s |
int atoi (const char *s) |
stdlib.h |
converte a string apontada por s para inteiro |
retorna o valor em inteiro da string apontada por s |
int atol (const char *s) |
stdlib.h |
converte a string apontada por s para inteiro longo |
retorna o valor em inteiro longo da string apontada por s |
Função |
Bibliot. |
observações / exemplos |
retorno |
double ceil (double x) |
math.h |
arredonda para cima (o próximo valor inteiro) o valor de x |
retorna o próximo valor inteiro maior que x |
void clreol (void) |
conio.h |
apaga todos os caracteres da posição do cursor até o fim da linha na janela de texto atual |
|
void clrscr (void) |
conio.h |
limpa a janela de texto atual |
|
double cos (double x) |
math.h |
Calcula o coseno de x. Os ângulos são especificados em radianos. |
retorna o cosenos. |
long double cosl (long double x) |
math.h |
Calcula o coseno de x, na versão long double. Os ângulos são especificados em radianos. |
retorna o cosenos. |
int cprintf (const char *format[, argument,...]) |
conio.h |
Verifique printf cprintf aceita uma série de argumentos, aplicados a cada especificador de formato contido na string apontada por format , e imprime a string formatada diretamente na janela de texto atual. A string é escrita diretamente na memória de vídeo por chamada às rotinas da BIOS. Ao contrário de fprintf e printf, cprintf não converte automaticamente caracteres de nova linha (\n) em nova linha/retorno de carro (\r\n) |
retorna o número de caracteres impressos |
int cputs (const char *s) |
conio.h |
imprime a string s na janela de texto atual. Não adiciona o caracter de nova linha. Ao contrário de puts e cputs, cputs não converte automaticamente caracteres de nova linha (\n) em nova linha/retorno de carro (\r\n) |
retorna o último caracter impresso |
Função |
Bibliot. |
observações / exemplos |
retorno |
double difftime (time_t time2, time_t time1) |
time.h |
Calcula a diferença entre dois tempos |
Retorna a diferença entre time2 e time1 |
Função |
Bibliot. |
observações / exemplos |
retorno |
int fclose (FILE *stream) |
stdio.h |
Fecha uma stream associada com o nome apontado por stream. Todos os buffers associados são esvaziados e a memória alocada é liberada para o sistema antes de fechar. Normalmente stream se refere a um arquivo. |
retorna 0 quando fechar a stream com sucesso, EOF se algum erro foi detectado |
int fcloseall (void) |
stdio.h |
Fecha todas as streams abertas, exceto stdin, stdout, stdprn, stderr, e stdaux. Normalmente stream se refere a um arquivo. |
retorna o número total de streams fechadas, EOF se algum erro foi detectado |
int feof (FILE *stream) |
stdio.h |
Verifica se a stream está indicando fim de arquivo. Normalmente stream se refere a um arquivo. |
retorna um valor diferente de 0 se o fim de arquivo foi detectado e 0 caso contrário |
int fgetc (FILE *stream) |
stdio.h |
Ex: fgetc (stdin) - retorna o próximo caracter da entrada padrão (normalmente o teclado) fgetc (filename) - retorna o próximo caracter do arquivo apontado por filename |
retorna o próximo caracter da stream apontada, retorna EOF (fim de arquivo) se encontrar EOF ou erro |
int fgetchar (void) |
stdio.h |
|
retorna o próximo caracter da stream stdin (que normalmente é o teclado) |
char *fgets (char *s, int n, FILE *stream) |
stdio.h |
lê caracteres da stream para a string apontada por s. A função lê até n-1 caracteres ou quando encontra um caracter de nova linha (\n), aquele que vier primeiro. fgets mantém o caracter de nova linha no fim de s. Se houver espaço, o caracter NULL é inserido no fim da string. |
caso ocorra sucesso, retorna a string apontada por s, retorna NULL se encontrar fim de arquivo ou erro |
double floor (double x) |
math.h |
arredonda para baixo o valor de x (o inteiro anterior) |
retorna o valor inteiro imediatamente anterior a x |
FILE *fopen (const char *filename, const char *mode) |
stdio.h |
Abre um arquivo com nome filename e associa uma stream a ele. mode é usado para definir como o arquivo será criado: r abre um arquivo somente leitura w cria um arquivo para escrita. Se o arquivo já existe, ele será sobrescrito a append; abre para escrita no fim do arquivo, ou cria para escrita se o arquivo não existe r+ abre um arquivo existente para leitura e escrita w+ cria um arquivo para leitura e escrita a+ abre um arquivo existente para leitura e escrita no fim do arquivo ou cria se o arquivo não existe Para especificar se o arquivo será aberto ou criado em modo texto ou binário, acrescente: t para modo texto b para modo binário Ex: fpt = fopen (“autoexec.bat”, “rt”); - abre o arquivo autoexec.bat para leitura no modo texto fpt = fopen (“dummy.dat”, “wb”); - cria o arquivo dummy.dat para escrita no modo binário |
retorna o ponteiro para identificar a stream em subsequentes operações |
int fprintf (FILE *stream, const char *format [, argument, ...]) |
stdio.h |
Verifique printf fprintf aceita uma série de argumentos, aplicados a cada especificador de formato contido na string apontada por format , e imprime a string formatada na stream indicada. Normalmente stream se refere a um arquivo. Ex: fprintf (fpt, “arquivo de teste # %d”, num); |
retorna o número de caracteres impresso, se ocorrer erro, retorna OEF (fim de arquivo) |
int fputc (int c, FILE *stream) |
stdio.h |
Imprime o caracter c na stream indicada. Ex: fputc ('A', stdout); - imprime o caracter 'A' na saída padrão (normalmente o vídeo) fputc ('A', fpt); - imprime o caracter 'A' na stream apontada por fpt Normalmente stream se refere a um arquivo. |
se ocorrer sucesso, retorna o caracter, caso contrário retorna EOF (fim de arquivo) |
int fputchar (int c) |
stdio.h |
Imprime o caracter c na saída padrão (normalmente o vídeo) |
se ocorrer sucesso, retorna o caracter, caso contrário retorna EOF (fim de arquivo) |
int fputs (const char *s, FILE * stream) |
stdio.h |
Imprime a string apontada por s na stream apontada por stream Ex: fputs (“Olá mundo”, stdout); - imprime a string “Olá mundo” na saída padrão (normalmente o vídeo) fputs (“Olá mundo”, fpt); - imprime a string “Olá mundo” na stream indicada por fpt |
se ocorrer sucesso, retorna um valor não negativo, caso contrário retorna EOF (fim de arquivo) |
size_t fread (void *ptr, size_t size, size_t n, FILE * stream) |
stdio.h |
Lê dados binários de uma stream. Lê n itens de dados, cada um com size bytes, da stream para o buffer apontado por ptr. Ex: fread (buffer, 80, 1, fpt); - copia 1 item de 80 bytes da stream apontada por fpt para buffer. Normalmente stream se refere a um arquivo. |
caso ocorra sucesso, retorna o número de itens (não bytes) lidos, retorna um valor baixo (possivelmente 0) quando encontra o fim do arquivo - EOF - ou erro |
void free (void *block) |
alloc.h |
Libera um bloco de memória alocada dinamicamente, apontado por block |
|
int fseek (FILE *stream, long offset, int whence) |
stdio.h |
Reposiciona o ponteiro da stream, posicionando-o em uma nova posição offset bytes da posição atual para whence. Em streams em modo texto, offset deve ser 0. whence deve ser um dos seguintes valores: SEEK_SET (0) início da stream SEEK_CUR (1) posição atual SEEK_END (2) EOF (fim de arquivo) Normalmente stream se refere a um arquivo. |
retorna 0 quando conseguiu reposicionar o ponteiro, qualquer outro valor em caso de falha |
int fwrite (const void *ptr, size_t size, size_t n, FILE * stream) |
stdio.h |
Escreve dados em uma stream. Escreve n itens de dados, cada um com size bytes, do buffer apontado por ptr, para a stream. Ex: fwrite (buffer, 80, 1, fpt); - copia 1 item de 80 bytes do buffer para a stream apontada por fpt. Normalmente stream se refere a um arquivo. |
caso ocorra sucesso, retorna o número de itens (não bytes) escritos, retorna um valor baixo (possivelmente 0) quando encontra erro |
Função |
Bibliot. |
observações / exemplos |
retorno |
int getc (FILE *stream) |
stdio.h |
Ex: getc (stdin) - retorna o próximo caracter da entrada padrão (normalmente o teclado) getc (filename) - retorna o próximo caracter do arquivo apontado por filename. |
retorna o próximo caracter da stream apontada, retorna EOF (fim de arquivo) se encontrar EOF ou erro |
int getch (void) |
conio.h |
Captura caracter do teclado. Não ecoa no vídeo. |
retorna o caracter lido do teclado |
int getchar (FILE *stream) |
stdio.h |
Captura caracter da entrada padrão - stdin. stdin normalmente é o teclado. |
retorna o caracter lido, se ocorrer erro ou fim de arquivo, retorna EOF (fim de arquivo) |
int getche (void) |
conio.h |
Captura caracter do teclado. Ecoa no vídeo. |
retorna o caracter lido do teclado |
void getdate (struct date *datep) |
dos.h |
Captura a data do sistema. Armazena na estrutura date apontada por datep a data do sistema. A estrutura date está definida da seguinte forma: struct date { int da_year; /* ano corrente */ char da_day; /* dia do mês */ char da_mon; /* mês (1 = janeiro) */ }; Ex: int main (void) { struct date d; /*cria a estrutura de tipo definido (date) “d”*/ getdate (&d); /* captura a data do sistema */ printf (“\nAno atual: %d”, d.da_year); /* imprime o ano corrente */ printf (“\nMês atual: %d”, d.da_mon); /* imprime o mês corrente */ printf (“\nDia atual: %d”, d.da_day); /* imprime o dia corrente */ } Veja setdate para alterar a data do sistema. |
|
void gettime (struct time *timep) |
dos.h |
Captura a hora do sistema. Armazena na estrutura time apontada por timep a hora do sistema. A estrutura time está definida da seguinte forma: struct time { unsigned char ti_min; /* minutos */ unsigned char ti_hour;/* horas */ unsigned char ti_hund;/* décimos de segundo */ unsigned char ti_sec; /* segundos */ }; Ex: int main (void) { struct time t; /* cria a estrutura de tipo definido (time) “t” */ gettime (&t); /* captura a hora do sistema */ printf (“\nHora: %d”, t.ti_hour); /* imprime a hora */ printf (“\nMinuto: %d”, t.ti_min); /* imprime o minuto */ printf (“\nSegundo: %d”, t.ti_sec); /* imprime o segundo */ } Veja settime para alterar a hora do sistema. |
|
void gotoxy (int x, int y) |
conio.h |
Posiciona o cursor em uma janela de texto, sendo x=coluna, y=linha. Chamadas a essa função com valores de coluna e/ou linha invlalidos fazem o comando ser ignorado. Os valores válidos dependem da configuração da tela. Por exemplo, para o padrão de 80 colunas por 25 linhas, x pode variar de 1 a 80 e y de 1 a 25 |
Função |
Bibliot. |
observações / exemplos |
retorno |
int inport (int portid) |
dos.h |
Lê um byte de uma porta de hardware. |
retorna byte lido |
char *itoa (int value, char *string, int radix) |
stdlib.h |
Converte value em uma string terminada com NULL. Armazena o resultado em string. radix especifica a base numérica utilizada para a conversão, podendo ser de 2 a 36. Se value for negativo e radix 10, o primeiro caracter da string será o sinal (-). |
retorna o ponteiro para a string |
Função |
Bibliot. |
observações / exemplos |
retorno |
int kbhit (void) |
conio.h |
Verifica se alguma tecla do teclado foi pressionada. kbhit não retira o caracter do buffer de teclado. |
retorna zero se nenhuma tecla foi pressionada, qualquer valor diferente de 0 caso contrário. |
Função |
Bibliot. |
observações / exemplos |
retorno |
double log (double x) |
math.h |
Calcula o logaritmo natural de x (). |
retorna o valor calculado |
double log10 (double x) |
math.h |
Calcula o logaritmo de x na base 10 (). |
retorna o valor calculado |
char *ltoa (long value, char *string, int radix) |
stdlib.h |
Converte value (que é um inteiro longo) em uma string terminada com NULL. Armazena o resultado em string. radix especifica a base numérica utilizada para a conversão, podendo ser de 2 a 36. Se value for negativo e radix 10, o primeiro caracter da string será o sinal (-). |
retorna o ponteiro para a string |
Função |
Bibliot. |
observações / exemplos |
retorno |
void *malloc (sizt_t size) |
stdlib.h |
Aloca memória principal, de tamanho size bytes. malloc não altera o conteúdo da memória alocada. Ex: char *str; // ponteiro de caracter str = malloc (10); /* aloca 10 bytes e passa o ** ponteiro para str */ |
retorna o ponteiro para a primeira posição de memória alocada, NULL se não há memória disponível. |
void *memcpy (void *dest, const void *src, size_t n) |
mem.h |
Copia um bloco de n bytes de src para dest. ATENÇÃO: Se os segmentos de memória ocupados por src e dest se sobreporem, o resultado da cópia é indefinido. Neste caso, utilize memmove. |
retorna dest. |
void *memmove (void *dest, const void src, size_t n) |
mem.h |
Copia um bloco de n bytes de src para dest. |
retorna dest |
void *memset (void *s, int c, size_t n) |
mem.h |
Seta n bytes de memória com o caracter c. |
retorna s |
Função |
Bibliot. |
observações / exemplos |
retorno |
void outport (int sportid, int value) |
dos.h |
Escreve em uma porta de hardware apontada por portid o valor de value. |
|
Função |
Bibliot. |
observações / exemplos |
retorno |
double pow (double x, double y) |
math.h |
Calcula . |
retorna o valor calculado. |
double pow10 (int p) |
math.h |
Calcula . |
retorna o valor calculado. |
int printf (const char *format[, argument, ...])
stdio.h
printf aceita uma série de argumentos, aplicados a cada especificador de formato contidos na string apontada por format . Imprime os dados formatados em stdout. É necessário que o número de especificadores de formato seja o mesmo número de argumentos.
A string formatada, presente em todas as funções XXprintf (printf, cprintf, fprintf, sprintf, etc.) controla como a função converterá, formatará e imprimirá cada argumento. É necessário que exista o mesmo número de especificadores de formato e de argumentos.
A string formatada contém dois tipos de objetos: caracteres imprimíveis e especificadores de formato:
Caracteres imprimíveis são simplesmente copiados para a saída.
Especificadores de formato contém argumentos que informam o tipo e o formato do dado a ser impresso.
Cada especificador de formato começa com o sinal de porcento (%). Após este sinal, seguem os seguintes especificadores, nesta ordem:
sequência opcional de caracteres de flag, como justificação, sinais numéricos, pontos decimais, zeros à esquerda, prefixos octal e hexadecimal;
comprimento mínimo de caracteres a serem impressos, para tabulação, com a inserção de espaços em branco ou zeros;
precisão - máximo número de caracteres a serem impressos; para inteiros, mínimo número de dígitos a serem impressos;
tamanho do argumento:
N = ponteiro (near)
F = ponteiro (far)
h = short int
l = long
L = long double
Conversores de formato
A tabela a seguir apresenta os conversores de formato, o tipo de dado de entrada para cada um e como é o formato do dado na saída, considerando que não foi utilizado nenhum caracter de flag citado acima.
Símbolo |
tipo de argumento |
formato da saída |
exemplo |
|||||||
---|---|---|---|---|---|---|---|---|---|---|
Formato |
Saída |
|||||||||
Numéricos |
||||||||||
d |
inteiro |
inteiro decimal sinalizado |
(“%d”, i) |
[-]26 |
||||||
i |
inteiro |
inteiro decimal sinalizado |
(“%i”, i) |
[-]26 |
||||||
o |
inteiro |
inteiro octal sem sinal |
(“%o”, i) |
32 |
||||||
u |
inteiro |
inteiro decimal sem sinal |
(“%u”, i) |
26 |
||||||
x |
inteiro |
inteiro hexadecimal sem sinal (com a, b, c, d, e, f) |
(“%x”, i) |
1a |
||||||
X |
inteiro |
inteiro hexadecimal sem sinal (com A, B, C, D, E, F) |
(“%X”, i) |
1A |
||||||
f |
ponto flutuante |
ponto flutuante com o formato [-]dddd.dddd |
(“%f”, i) |
123.456 |
||||||
e |
ponto flutuante |
ponto flutuante com o formato [-]d.dddd ou e[+/-]ddd |
(“%e”, i) |
[-]1.2e[±]3 |
||||||
g |
ponto flutuante |
igual e ou f, valendo quem tiver maior precisão |
(“%g”, i) |
[-]1.2e[±]3 |
||||||
E |
ponto flutuante |
o mesmo que e, mas com o indicador E maiúsculo |
(“%d”, i) |
[-]1.2E[±]3 |
||||||
G |
ponto flutuante |
o mesmo que g, mas com o indicador E maiúsculo, se usado |
(“%d”, i) |
[-]1.2E[±]3 |
||||||
Caracteres |
|
|
|
|
||||||
c |
caracter |
caracter isolado |
(“%c”, i) |
a |
||||||
s |
ponteiro de string |
imprime caracteres até encontrar NULL ou a precisão for alcançada |
(“%s”, i) |
texto |
||||||
% |
---- |
imprime o caracter % |
(“%%”) |
% |
||||||
Ponteiros |
|
|
|
|
||||||
n |
ponteiro para int |
armazena na variável apontada o total de caracteres impressos |
(“%n”, &i) |
|
||||||
p |
ponteiro |
imprime o ponteiro (endereço físico da memória, não seu conteúdo) |
(“%p”, &i) |
02A3:457B |
Convenções
Algumas convenções acompanham alguns destes especificadores, conforme a tabela abaixo:
Caracteres |
Convenções |
---|---|
e ou E |
O argumento é convertido para o estilo [-]d.ddd...e[±]ddd, quando
|
f |
O argumento é convertido para a notação decimal no estilo [-]ddd.ddd..., quando o número de dígitos após o ponto decimal for igual à precisão (se a precisão for diferente de zero) |
g ou G |
O argumento é impresso no estilo e, E ou f com a precisão especificando o número de dígitos significativos. Zeros à direita são removidos do resultado e o ponto decimal aparece somente se necessário. O argumento é impresso no estilo e ou f (com algumas restrições) se g for o caracter de conversão e no estilo E se o caracter de conversão for G. O estilo e é usado somente se o expoente resultante da conversão for maior que a precisão ou menor que -4. |
x ou X |
Para conversões onde as letras hexadecimais devem aparecer em minúsculo (a, b, c, d, e e f) o caracter de conversão deve ser x, caso contrário, para maiúsculos (A, B, C, D, E e F) o caracter deve ser X. |
Obs.:
Números em ponto flutuante infinitos são impressos como +INF e -INF. Valores não numéricos são impressos como +NAN ou -NAN.
Flags
Os caracteres de flag são: menos (-), mais (+), sharp (#) e vazio ( ). Eles podem vir em qualquer ordem e combinação.
Flag |
O que especifica |
exemplo |
|||
---|---|---|---|---|---|
Formato |
Saída |
||||
- |
justifica à esquerda o resultado, completando com espaços vazios. |
(“%-4dteste”,i) |
12 teste |
||
+ |
sinaliza o valor, mesmo se for positivo |
(“%+d”,i) |
+12 |
||
vazio |
se o valor não for negativo, a saída começa com um espaço vazio. Se for negativo, começa com menos (-) |
(“teste% d”,i) |
teste 12 |
||
# |
especifica que o argumento será convertido obedecendo a tabela abaixo. |
|
|
Formas alternativas
Se o flag # for usado, ele tem o seguinte efeito sobre o argumento a ser convertido:
Caracter de conversão |
Como # afeta o argumento |
Exemplo |
|||
---|---|---|---|---|---|
|
|
||||
c, s, d, i, u |
sem efeito |
|
|
||
o (octal) |
o caracter 0 (zero) é acrescentado em valores diferentes de zero |
(“%#o”,i) |
014 |
||
x ou X |
0x ou 0X é acrescentado |
(“%#x”,i) |
0xc |
||
e, E ou f |
o resultado sempre contém o ponto decimal, mesmo que não tenham dígitos depois do ponto. |
(“%#f”,i) |
12. |
||
g ou G |
o mesmo que o anterior, com o adicional que os zeros à direita também são mantidos. |
(“%#g”,i) |
12.0000 |
Especificadores de comprimento
O especificador de comprimento define o comprimento mínimo da saída. Pode ser especificado diretamente, através de um especificador decimal ou indiretamente com o asterisco (*). Se o especificador for o asterisco, o próximo argumento deve ser um int com o valor do comprimento.
exemplos |
|
---|---|
formato |
saída |
(“%3d”,i) |
12 |
(“%03d”,i) |
012 |
c=4, i=12 (“%*d”,c,i) |
12 |
c=4, i=12 (“%0*d”,c,i) |
0012 |
Especificadores de precisão
O especificador de precisão sempre começa com um ponto (.). Assim como o especificador de comprimento, ele pode ser especificado diretamente através de um especificador decimal ou com o asterisco (*). Se o especificador for o asterisco, o próximo argumento deve ser um int com o valor da precisão.
Especificador de precisão |
Como a saída é afetada |
Exemplo |
|||
---|---|---|---|---|---|
Formato |
Saída |
||||
nenhum |
a precisão é ajustada para o padrão:
|
(“%f”,i) (“%g”,i) |
1.234500 1.2345 |
||
.0 (zero) |
|
(“%f”,i) |
1 |
||
.n |
n caracteres ou n casas decimais são impressas. Se a saída for maior que n, o valor será truncado. |
i=1.2345, *s=”teste” (“%.3f”,i) (“%.3s”,s) |
1.234 tes |
||
* |
o argumento que acompanha o valor especifica a precisão. |
p=2, i=1.2345 (“%.*f”,p,i) |
1.23 |
Obs.: Se a precisão de zero for explicitamente especificada, e o formato for um dos formatos inteiros (d, i, o, u, x ou X), e o valor a ser impresso for 0 (zero), o 0 (zero) não será impresso, no lugar dele será impresso um espaço vazio.
Modificadores de tamanho
Os modificadores de tamanho informam o tamanho do argumento de entrada
Modificador de tamanho |
Como o argumento é interpretado |
exemplo |
---|---|---|
F |
é lido como um ponteiro far |
(“%Fp”,i) |
N |
é lido como um ponteiro near |
(“%Fp”,i) |
h |
é interpretado como short int para d, i, o, u, x ou X |
(“%hd”,i) |
l |
é interpretado como um long int para d, i, o, u, x ou X; é interpretado como double para e, E, f, g ou G |
(“ld”,i) |
L |
é interpretado como long double para e, E, f, g ou G |
(“%Lf”,i) |
Retorno
printf retorna o número de caracteres impressos, caso ocorra erro, retorna EOF.
Função |
Bibliot. |
observações / exemplos |
retorno |
int putc (int c, FILE *stream) |
stdio.h |
Imprime o caracter c na stream. A stream pode ser por exemplo o vídeo (stdout), um arquivo ou outra stream válida. |
retorna o caracter impresso. Caso ocorra erro, retorna EOF (fim de arquivo). |
int putch (int c) |
conio.h |
Imprime o caracter c no vídeo. |
retorna o caracter impresso. Caso ocorra erro, retorna EOF (fim de arquivo). |
int putchar (int c) |
stdio.h |
Imprime o caracter c no na stream stdout. Normalmente stdout é o vídeo. |
retorna o caracter impresso. Caso ocorra erro, retorna EOF (fim de arquivo). |
int puts (const char *s) |
stdio.h |
Imprime a string apontada por s em stdout, acrescentando os caracteres de nova linha (0x0d 0x0a). Normalmente stdout é o vídeo. |
Caso ocorra erro, retorna EOF (fim de arquivo), senão retorna qualquer valor maior ou igual a zero. |
Função |
Bibliot. |
observações / exemplos |
retorno |
int rand (void) |
stdlib.h |
Gerador de números randômicos. Gera um número pseudo-randômico com range de 0 a Obs.: veja também random, randomize e srand. |
retorna número gerado. |
int random (int num) |
stdlib.h |
Gerador de números randômicos. Gera um número randômico entre 0 e num-1. O valor retornado é inteiro. Obs.: veja também rand, randomize e srand. |
retorna o número gerado. |
void randomize (void) |
stdlib.h time.h |
Inicia o gerador de números randômicos. É importante que a biblioteca time.h também seja incluída. Obs.: veja também rand, random e srand. |
|
int remove (const char *filename) |
stdio.h |
Apaga um arquivo. Se o arquivo estiver aberto, feche-o primeiro. A string apontada por filename pode incluir o caminho (path) completo do arquivo. |
Apagando o arquivo, retorna zero, caso contrário retorna -1 e a variável de global errno é modificada para um dos seguintes valores:
|
int rename (const char *oldname, const char *newname) |
stdio.h |
Renomeia um arquivo. Troca o nome do arquivo de oldname para newname. Diretórios em oldname e newname devem ser os mesmos. Especificando diretórios diferentes, rename copia o arquivo de um local para outro. Caracteres coringa (*,?,~) não são permitidos. |
Renomeando o arquivo, retorna zero, caso contrário retorna -1 e a variável de global errno é modificada para um dos seguintes valores:
|
void rewind (FILE *stream) |
stdio.h |
Reposiciona o ponteiro da stream para o início. |
|
int rmdir (const char *path) |
dir.h |
Apaga o diretório indicado por path. O diretório deve estar vazio, não ser o diretório de trabalho atual. nem o diretório raiz. |
Retorna 0 se o diretório foi apagado com sucesso, caso contrário retorna -1 e a variável de global errno é modificada para um dos seguintes valores:
|
int scanf (const char *format[, address, ...])
stdio.h
scanf
f
az
a varredura de uma série de campos da entrada padrão,
um caracter de cada vez. Cada campo é interpretado de acordo
com um especificador de formato e
armazena a entrada interpretada
de cada campo no endereço passado a ele. É essencial
fornecer o mesmo número de especificadores de formato e de
argumentos do endereço, senão os resultados serão
desastrosos, imprevizíveis.
Os especificadores de formato devem começar com um sinal de porcento (%) e tem o seguinte formato:
%[*][comprimento] [F?N] [h/l/L] tipo
* suprime o que for digitado depois do campo de dados
comprimento determina o número máximo de caracteres a serem lidos
N/F tipo de ponteiro do dado armazenado (near ou far)
h/l/L modifica o tipo de dado: h = short int
l (“ele” minúsculo) = long int (se o especificador for inteiro)
l (“ele” minúsculo) = double (se o especificador for ponto flutuante)
L = long double (valido somente para especificador de ponto flutuante)
tipo especificador de formato veja a tabela a seguir
scanf (%[especificador],&[argumento]);
Especificador |
entrada esperada |
tipo de argumento |
exemplo |
Numéricos |
|||
d |
inteiro decimal |
ponteiro para int |
int valor; scanf (“%d”,&valor); |
D |
inteiro decimal |
ponteiro para long |
long valor; scanf (“%D,&valor); |
o |
inteiro octal |
ponteiro para int |
int valor; scanf (“%o”,&valor); |
O |
inteiro octal |
ponteiro para long |
long valor; scanf (“%O”,&valor); |
i |
inteiro decimal, octal ou hexadecimal |
ponteiro para int |
int valor; scanf (“%i”,&valor); |
I (i maiúsculo) |
inteiro decimal, octal ou hexadecimal |
ponteiro para long |
long valor; scanf (“%I”,&valor); |
u |
inteiro decimal não sinalizado |
ponteiro para unsigned int |
unsigned int valor; scanf (“%u”,&valor); |
U |
inteiro decimal não sinalizado |
ponteiro para unsigned long |
unsigned long valor; scanf (“%U”,&valor); |
x |
inteiro hexadecimal |
ponteiro para int |
int valor; scanf (“%x”,&valor); |
X |
inteiro hexadecimal |
ponteiro para long |
long valor; scanf (“%X”,&valor); |
e,E |
ponto flutuante |
ponteiro para float |
float valor; scanf (“%e”,&valor); |
f |
ponto flutuante |
ponteiro para float |
float valor; scanf (“%f”,&valor); |
g,G |
ponto flutuante |
ponteiro para float |
float valor; scanf (“%g”,&valor); |
Caracteres |
|||
s |
string de texto |
ponteiro para uma matriz de caracteres (char[ ]) |
char valor[80]; scanf (“%s”,&valor); |
c |
caracter |
ponteiro para char |
char valor; scanf (“%c”,&valor); |
% |
caracter '%' |
sem conversão, apenas o caracter '%' é armazenado |
|
ponteiros |
|||
n |
endereço de memória (hexadecimal) |
ponteiro para int |
int valor; scanf (“%n”,&valor); |
p |
endereço de memória (hexadecimal) no formato YYYY:ZZZZ ou ZZZZ |
ponteiro para um objeto (far* ou near*) esta conversão depende do modelo de memória |
|
scanf retorna o número campos lidos, convertidos e armazenados com sucesso. Se scanf encontrar EOF, retorna EOF.
Para mais informações, pesquise em literatura específica (ex.:Borland C++ Library Reference) ou na internet.
Função |
Bibliot. |
observações / exemplos |
retorno |
double sin (double x) |
math.h |
Calcula o seno de x. Os ângulos são especificados em radianos. |
retorna o seno. |
long double sinl (long double x) |
math.h |
Calcula o seno de x, na versão long double. Os ângulos são especificados em radianos. |
retorna o seno. |
void sleep (unsigned seconds) |
dos.h |
Suspende a execução do programa pelo número de segundos especificado em seconds. |
|
int sprintf (char *buffer, const char *format [, argument, ...]) |
stdio.h |
Escreve em uma string. Sua utilização é idêntica a printf, verifique para mais detalhes. |
Retorna o número de bytes escritos. Não inclui o NULL na contagem. Caso ocorra erro, retorna EOF. |
double sqrt (double x) |
math.h |
Calcula a raiz quadrada positiva de x. |
Retorna a raiz quadrada de x. Caso ocorra erro ou o resultado seja negativo, a variável global errno é modificada para:
|
long double sqrtl (long double x) |
math.h |
Calcula a raiz quadrada positiva de x. Versão long double. |
O mesmo que sqrt. |
void srand (unsigned seed) |
stdlib.h |
Reinicia o gerador de números aleatórios, com seed igual a 1. Pode ter um novo ponto de início com outros números para seed. |
|
char *strcat (char *dest, const char *src) |
string.h |
Concatena (acrescenta no final) uma string (src) em outra (dest). |
Retorna o ponteiro para dest. |
int strcmp (const char *s1, const char *s2) |
string.h |
Compara s1 com s2. |
Retorna
|
int strcmpi (const char *s1, const char *s2) |
string.h |
Compara s1 com s2, sem considerar maiúsculas e minúsculas |
Retorna o mesmo que strcmp |
char *strcpy (char *dest, const char *src) |
string.h |
Copia a string src para dest. |
Retorna o ponteiro para dest |
size_t strlen (const char *s) |
string.h |
Calcula o comprimento de s. |
Retorna o número de caracteres até o NULL, sem contá-lo |
char *strncat (char *dest, const char *src, size_t maxlen) |
string.h |
Concatena (acrescenta no final) uma porção da string src em dest, a quantidade de caracteres é definida em maxlen. |
Retorna o ponteiro para dest. |
int strncmp (const char *s1, const char *s2, size_t maxlen) |
string.h |
Compara s1 com s2, apenas maxlen caracteres. |
Retorna o mesmo que strcmp |
int strncmpi (const char *s1, const char *s2, size_t maxlen) |
string.h |
Compara s1 com s2, apenas maxlen caracteres, sem considerar maiúsculas e minúsculas. |
Retorna o mesmo que strcmp |
char *strncpy (char *dest, const char *src, size_t maxlen) |
string.h |
Copia a string src para dest, apenas maxlen caracteres. |
Retorna o ponteiro para dest |
char *strstr (const char *s1, const char *s2) |
string.h |
Procura pela primeira ocorrência da sub-string s2 na string s1. |
Retorna o ponteiro para o primeiro caracter de s2 contido em s1 caso tenha encontrado. Caso contrário, retorna NULL. |
char *strtok (char *s1, const char *s2) |
string.h |
Separa s1 em segmentos cujo separador é determinado em s2. A primeira chamada a strtok retorna o ponteiro do primeiro segmento de s1 e escreve NULL imediatamente após o segmento retornado em s1. As próximas chamadas a strtok com NULL no primeiro argumento fará a busca pelos próximos segmentos contidos em s1. O separador s2 pode ser diferente de chamada a chamada.
Exemplo de código: #include <string.h> #include <stdio.h>
int main(void) { char input[] = "teste 12 3"; char *p;
/* strtok escreve NULL depois do segmento, se encontrado */ p = strtok(input, " "); if (p) printf("%s\n", p);
/* Seguintes chamadas a strtok usando NULL como primeiro parametro retorna um ponteiro para o proximo segmento */ while ((p = strtok(NULL, " ")) != NULL) printf("%s\n", p);
return 0; }
Saída do programa: teste 12 3 |
Retorna o ponteiro para o segmento encontrado ou NULL caso não tenha encontrado nenhum ou não tenha mais segmentos em s1. |
int system (const char *command) |
stdlib.h |
Chama o interpretador de comandos (command.com, no DOS) para executar command. |
Se command for um ponteiro NULL e o processador de comandos estiver ativo, retorna um valor diferente de 0. Ce command não for NULL, retorna 0 se o interpretador de comandos foi corretamente iniciado. Se ocorreu algum erro, retorna -1 e a variável global errno é modificada para um dos seguintes valores: ENOENT, ENOMEM, E2BIG ou ENOEXEC |
Função |
Bibliot. |
observações / exemplos |
retorno |
double tan (double x) |
math.h |
Calcula a tangente de x. Os ângulos são especificados em radianos. |
retorna a tangente. |
long double tanl (long double x) |
math.h |
Calcula a tangente de x, na versão long double. Os ângulos são especificados em radianos. |
retorna a tangente. |
void textbackground (int newcolor); |
conio.h |
Troca a cor de fundo da tela texto Tabela de cores válidas: BLACK BLUE GREEN CYAN RED MAGENTA BROWN LIGHTGRAY Ex: textbackground (BLUE); /* troca o fundo para azul */ |
|
void textcolor (int newcolor); |
conio.h |
Troca a cor dos caracteres Tabela de cores válidas: BLACK BLUE GREEN CYAN RED MAGENTA BROWN LIGHTGRAY DARKGRAY LIGHTBLUE LIGHTGREEN LIGHTCYAN LIGHTRED LIGHTMAGENTA YELLOW WHITE Ex: textcolor (YELLOW); /* troca a cor dos caracteres para amarelo */ |
|
void textmode (int newmode); |
conio.h |
Muda o modo de exibição da tela texto. Modos válidos: LASTMODE retorna ao modo anterior BW40 preto e branco, 40 colunas C40 colorido, 40 colunas BW80 preto e branco, 80 colunas C80 colorido, 80 colunas MONO monocromático, 80 colunas C4350 EGA = 43 linhas, VGA = 50 linhas Ex: textmode (C4350); /* muda para o modo de 50 linhas */ |
|
time_t time (time_t *timer) |
time.h |
Ex: time_t t; // variável “t” t = time (NULL); // “t” recebe o número de segundos |
Retorna o tempo, em segundos, desde às 0:00h de 1º de janeiro de 1970 e armazena o valor em timer, se este ponteiro não for NULL. |
int tolower (int ch) |
ctype.h |
Converte um caracter maiúsculo em minúsculo, se for possível, senão mantém o caracter intacto. Veja toupper. |
Retorna o caracter convertido. |
int toupper (int ch) |
ctype.h |
Converte um caracter minúsculo em maiúsculo, se for possível, senão mantém o caracter intacto. Veja tolower. |
Retorna o caracter convertido. |
Função |
Bibliot. |
observações / exemplos |
retorno |
int unlink (const char *filename) |
io.h |
Apaga o arquivo especificado em filename. Arquivos com o atributo de somente leitura não podem ser apagados por essa função. Para remover esses arquivos, modifique o atributo utilizando chmod ou _chmod. Se o arquivo está aberto, tenha certeza que ele foi fechado antes de chamar unlink. |
Se ocorreu sucesso, retorna 0, senão retorna -1 e a variável global errno é modificada para um dos seguintes valores:
|
Função |
Bibliot. |
observações / exemplos |
retorno |
void window (int left, int top, int right, int bottom); |
conio.h |
Define uma janela de texto na tela. Se qualquer coordenada for inválida, a função é ignorada. (left, top) são as coordenadas superiores à esquerda da janela. (right, bottom) são as coordenadas inferioresà direita da janela. O tamanho mínimo de uma janela de texto é de uma coluna por uma linha. Seus valores válidos são: ■ Modo 80 colunas: (1, 1, 80, 25) ■ Modo 40 colunas: (1, 1, 40, 25) Ex: criando uma janela da coluna 20 da linha 10 até a coluna 40 da linha 20: window (20, 10, 40, 20); |
|
Em eterna construção