SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Introdução à Programação em
Linguagem C
Rodolfo Riyoei Goya
http://rgoya.sites.uol.com.br
rgoya@uol.com.br
Modelo Abstrato de Programação
Elementos Estruturais
Dados de Tipo Simples
Dados em Estruturas Homogêneas
Dados em Estruturas Heterogêneas
Elementos Algorítmicos
Declaração
Comandos de Entrada/Saída
Comandos de Expressão
Comandos de Decisão
Comandos de Iteração
16.02.14
Linguagem C
Rodolfo Goya 2
Comandos Básicos de
Entrada/Saída
Fazem a “comunicação” entre o programa e o mundo
exterior, através dos dispositivos de entrada padrão
(stdin) e saída padrão (stdout)
Comandos básicos:
Saída de Caracter: putchar(), putc(), putch()
Entrada de Caracter: getchar(), getc(), getch(), getche()
Saída Formatada: printf()
Entrada Formatada: scanf()
16.02.14
Linguagem C
Rodolfo Goya 3
putchar()
Envia um caracter para o dispositivo de saída padrão
(stdout)
Biblioteca stdio.h
Equivalente a putc( char, stdout )
Converte um valor de 8 bits segundo a tabela ASCII
Pode enviar valores de constantes e variáveis:
#include <stdio.h>
.
char c = ‘?’, d = 49;
putchar( c );
putchar( d );
putchar( 65 );
putc( ‘A’, stdout );
putch()
Envia um caracter para o dispositivo de saída padrão
(stdout - console)
Biblioteca conio.h
Converte um valor de 8 bits segundo a tabela ASCII
Pode enviar valores de constantes e variáveis:
#include <conio.h>
char c = ‘?’, d = 49;
putch( c );
putch( d );
putch( 65 );
putc( ‘A’, stdout );
getchar()
Recebe um caracter do dispositivo de entrada padrão
(stdin - console) ecoando o caracter recebido. Aguarda
“Enter” para finalizar.
Biblioteca stdio.h
Equivalente a getc( stdin )
Converte um valor de 8 bits segundo a tabela ASCII
#include <stdio.h>
.
char c, d;
c = getchar();
d = getc( stdin );
getche()
Recebe um caracter do dispositivo de entrada padrão
(stdin - console) ecoando o caracter recebido. Não
aguarda “Enter” para finalizar.
Biblioteca conio.h
Converte um valor de 8 bits segundo a tabela ASCII
#include <conio.h>
.
char c;
c = getche();
getch()
Recebe um caracter do dispositivo de entrada padrão
(stdin - console) sem ecoar o caracter recebido. Não
aguarda “Enter” para finalizar.
Biblioteca conio.h
Converte um valor de 8 bits segundo a tabela ASCII
#include <conio.h>
.
char c, d;
c = getch();
d = getch();
printf()
Exibe uma saída formatada para o dispositivo de saída
padrão (stdout)
Biblioteca stdio.h
Exemplo
#include <stdio.h>
.
int i = 10;
printf( “Este programa é bacana.” );
printf( “O valor de i é: %d”, i );
printf()
Os marcadores iniciados com ‘%’ são substituídos por
variáveis ou expressões listados em seguida no
comando printf
A ordem que os marcadores aparecem define a ordem
das variáveis/expressões usadas para substituí-los.
O formato geral dos marcadores é:
%[Flags][Largura].[Precisão][Tamanho][Tipo]
printf() - Marcadores
%[Flags][Largura].[Precisão][Tamanho][Tipo]
Flags (Opcional): Um ou mais dentre os caracteres -, +, # ou 0
especificando a justificação do número e o uso ou não de sinal e do
ponto decimal no valor impresso.
Largura (Opcional): Um número que especifica quantos caracteres, no
mínimo, devem ser utilizados na impressão.
Precisão (Opcional): Um número que especifica quantos caracteres, no
máximo, devem ser utilizados na impressão.
printf() - Marcadores
%[Flags][Largura].[Precisão][Tamanho][Tipo]
Tamanho (Opcional): Um caracter que modifica o campo Tipo que vem
a seguir.
Se for um h antes de um tipo d, i, o, x, X ou u especifica que o argumento
é de tipo short.
Se for um l antes de um tipo d, i, o, x, X ou u especifica que o argumento é
de tipo long.
Se for um ll antes de um tipo d, i, o, x, X ou u especifica que o argumento é
de tipo long long (64 bits).
Se for um l antes de um tipo e, E, f, g, G especifica que o argumento é de
tipo double.
Se for um L antes de um tipo e, E, f, g, G especifica que o argumento é de
tipo long double.
Tipo (Obrigatório): O ítem mais importante desta lista. Uma letra que
especifica o tipo da variável a ser impressa.
printf() – Tipo
Tipo Tipo de Dado Descrição
%d int Inteiro
%u unsigned Inteiro (sem sinal)
%ld long Inteiro long
%lu unsigned long Inteiro long (sem sinal)
%hd short Inteiro short
%hu unsigned short Inteiro short (sem sinal)
%lld long long Inteiro long long
%llu unsigned long long Inteiro long long (sem sinal)
printf() – Tipo
Tipo Tipo de Dado Descrição
%% Caracter ‘%’
%c char Caracter
%o octal Octal (sem sinal)
%x hexadecimal Hexadecimal com letras minúsculas (sem sinal)
%X hexadecimal Hexadecimal com letras maiúsculas (sem sinal)
printf() – Tipo
Tipo Tipo de Dado Descrição
%e double ou float Ponto flutuante em notação científica
%E double ou float Ponto flutuante em notação científica (usando E)
%f double ou float Ponto flutuante na forma (sinal)(dígitos).(dígitos)
%g double ou float Escolhe dentre f ou e o que produz a saída mais compacta.
%G double ou float Idem ao g (usando F ou E).
%Le long double Ponto flutuante em notação científica
%Lf long double Ponto flutuante na forma (sinal)(dígitos).(dígitos)
%Lg long double Escolhe dentre f ou e o que produz a saída mais compacta.
%s char[] Imprime uma cadeia de caracteres até encontrar ‘0’
printf() – Flag
Flag Significado Default
- Valor impresso justificado para a esquerda
dentro de um campo grande o bastante para
contê-lo
Justificado para a direita
+ Se a impressão for de um número será
impresso ‘+’ ou ‘-’ de acordo com o sinal do
número
Um sinal ‘-’ é impresso para
valores negativos
0 Os números são preenchidos com zeros a
esquerda
Os números são preenchidos
com espaços em branco
printf() – Precisão
Tipo Significado de precisão Default
c Ignorada. Só um caracter é impresso.
d u i
l ll o
x X
Especifica o número mínimo de dígitos a ser impresso. Se o
número ocupar menos dígitos que o especificado é preenchido
com brancos ou zeros (depende do flag usado). Se o número
ocupar mais dígitos ele é impresso mesmo assim (nunca é
truncado).
Se não for especificada ou se for
zero ou apenas um ponto decimal
sem um número depois dele, o
valor default será 1.
e E
Le
LE
Número de dígitos a serem impressos depois do ponto
decimal. Se especificado 0, não imprime nem o ponto
decimal.
6 dígitos.
F
LF
Número de dígitos a serem impressos depois do ponto
decimal. Se especificado 0, não imprime nem o ponto
decimal.
6 dígitos.
g G
Lg
LG
Especifica o número de algarismos significativos a serem
impressos.
Todos os algarismos
significativos
s O número total de caracteres impresso. Preenche com brancos
se for menor e trunca se for maior.
Todo o string.
scanf()
Recebe entrada formatada no dispositivo de entrada
padrão (stdin)
Biblioteca stdio.h
Usa os mesmos marcadores que o printf()
Admite múltiplas entradas por comando, inclusive com
marcadores de conversão diferentes
Exige o operador ‘&’ antes dos nomes das variáveis
(exceto quando se tratam de variáveis de tipo strings)
scanf() - Exemplo
Exemplo
#include <stdio.h>
.
int i, j;
float x;
char nome[20];
scanf( “%d”, &i );
scanf( “%d %f”, &j, &x );
scanf( “%s”, nome );
Redirecionamento
A entrada/saída pode ser redirecionada
A entrada padrão (stdin) pode ser redirecionada pelo
comando freopen() para vir de um arquivo. Por
exemplo:
freopen( "in.txt", "r", stdin );
Neste caso, toda entrada virá do arquivo in.txt
A saida padrão (stdout) pode ser redirecionada pelo
comando freopen() para ser enviada a um arquivo. Por
exemplo:
freopen( "out.txt", "w", stdout );
Neste caso, toda saída irá para o arquivo out.txt
Conclusões
A comunicação é parte essencial de qualquer programa.
Pode ser interativa (com o usuário) ou com entrada e
saída através de arquivos (também denominada de
“batch”)
Os comandos de entrada/saída em linguagem C
permitem a comunicação direta na forma de caracteres
codificados em ASCII ou executando a conversão desses
caracteres de/para números inteiros, em ponto
flutuante, hexadecimal e octal
O comando printf() permite um controle fino do formato
em que a saída será impressa

Contenu connexe

Tendances (20)

Linguagem C - Entrada e Saída
Linguagem C - Entrada e SaídaLinguagem C - Entrada e Saída
Linguagem C - Entrada e Saída
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Layout Nfe
Layout NfeLayout Nfe
Layout Nfe
 
Linguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E MatrizesLinguagem C 05 Vetores E Matrizes
Linguagem C 05 Vetores E Matrizes
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Ud3
Ud3Ud3
Ud3
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Aula 05 Vetores
Aula 05  VetoresAula 05  Vetores
Aula 05 Vetores
 
Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
Apostila c
Apostila cApostila c
Apostila c
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Linguagem c wellington telles - aula 03
Linguagem c   wellington telles - aula 03Linguagem c   wellington telles - aula 03
Linguagem c wellington telles - aula 03
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 

En vedette

Programa Crescer
Programa CrescerPrograma Crescer
Programa CrescerIvo Junior
 
Opplegg for undervisning
Opplegg for undervisningOpplegg for undervisning
Opplegg for undervisningrhoega
 
Powerpoint novas tecnoloxias
Powerpoint novas tecnoloxiasPowerpoint novas tecnoloxias
Powerpoint novas tecnoloxiascristialba
 
Marina di Carrara 2011 january
Marina di Carrara 2011 januaryMarina di Carrara 2011 january
Marina di Carrara 2011 januaryPerbosc
 
eTwinning-project-planning-form
eTwinning-project-planning-formeTwinning-project-planning-form
eTwinning-project-planning-formPerbosc
 
Jardin bio FRANCE
Jardin bio FRANCEJardin bio FRANCE
Jardin bio FRANCEPerbosc
 
Trabajo Biología
Trabajo BiologíaTrabajo Biología
Trabajo BiologíaDayanCueto
 
Stars of Istanbul_ Sunum
Stars of Istanbul_ SunumStars of Istanbul_ Sunum
Stars of Istanbul_ SunumZeynep Helvaci
 
Alasis de la catedral de notre dame
Alasis de la catedral de notre dameAlasis de la catedral de notre dame
Alasis de la catedral de notre dameEduardo Montesdeoca
 
Veena mkr 493 Resume
Veena mkr 493 ResumeVeena mkr 493 Resume
Veena mkr 493 Resumem veena
 

En vedette (14)

Programa Crescer
Programa CrescerPrograma Crescer
Programa Crescer
 
Bubuk kedelai
Bubuk kedelaiBubuk kedelai
Bubuk kedelai
 
Eguneroko ibilbidea
Eguneroko ibilbideaEguneroko ibilbidea
Eguneroko ibilbidea
 
Opplegg for undervisning
Opplegg for undervisningOpplegg for undervisning
Opplegg for undervisning
 
Powerpoint novas tecnoloxias
Powerpoint novas tecnoloxiasPowerpoint novas tecnoloxias
Powerpoint novas tecnoloxias
 
Marina di Carrara 2011 january
Marina di Carrara 2011 januaryMarina di Carrara 2011 january
Marina di Carrara 2011 january
 
eTwinning-project-planning-form
eTwinning-project-planning-formeTwinning-project-planning-form
eTwinning-project-planning-form
 
Acosta c.
Acosta c.Acosta c.
Acosta c.
 
Jardin bio FRANCE
Jardin bio FRANCEJardin bio FRANCE
Jardin bio FRANCE
 
Trabajo Biología
Trabajo BiologíaTrabajo Biología
Trabajo Biología
 
Stars of Istanbul_ Sunum
Stars of Istanbul_ SunumStars of Istanbul_ Sunum
Stars of Istanbul_ Sunum
 
Alasis de la catedral de notre dame
Alasis de la catedral de notre dameAlasis de la catedral de notre dame
Alasis de la catedral de notre dame
 
Veena mkr 493 Resume
Veena mkr 493 ResumeVeena mkr 493 Resume
Veena mkr 493 Resume
 
Yamuna resume
Yamuna resumeYamuna resume
Yamuna resume
 

Similaire à Introdução à Programação em Linguagem C

Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2engenhariadecomputacao
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfvictorlopes714651
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª msJoelsa Soares
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
Linguagem C (Parte 6)
Linguagem C (Parte 6)Linguagem C (Parte 6)
Linguagem C (Parte 6)Daniel Barão
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao cprofwtelles
 

Similaire à Introdução à Programação em Linguagem C (20)

Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2Algoritmo e lógica de programação - aula 2
Algoritmo e lógica de programação - aula 2
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdf
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 05 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Linguagem em c
Linguagem em cLinguagem em c
Linguagem em c
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª ms
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Ling c
Ling cLing c
Ling c
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Linguagem_C.pdf
Linguagem_C.pdfLinguagem_C.pdf
Linguagem_C.pdf
 
Linguagem C (Parte 6)
Linguagem C (Parte 6)Linguagem C (Parte 6)
Linguagem C (Parte 6)
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Programação C - Aula 4
Programação C - Aula 4Programação C - Aula 4
Programação C - Aula 4
 
C 1
C 1C 1
C 1
 

Plus de Daniel Barão

Conhecimentos de Informática.pdf
Conhecimentos de Informática.pdfConhecimentos de Informática.pdf
Conhecimentos de Informática.pdfDaniel Barão
 
Linguagem C (Parte 4)
Linguagem C (Parte 4)Linguagem C (Parte 4)
Linguagem C (Parte 4)Daniel Barão
 
Linguagem C (Parte 3)
Linguagem C (Parte 3)Linguagem C (Parte 3)
Linguagem C (Parte 3)Daniel Barão
 
Linguagem C (Parte 1)
Linguagem C (Parte 1)Linguagem C (Parte 1)
Linguagem C (Parte 1)Daniel Barão
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Tempo de vida das variaveis
Tempo de vida das variaveisTempo de vida das variaveis
Tempo de vida das variaveisDaniel Barão
 

Plus de Daniel Barão (7)

Conhecimentos de Informática.pdf
Conhecimentos de Informática.pdfConhecimentos de Informática.pdf
Conhecimentos de Informática.pdf
 
Linguagem C (Parte 4)
Linguagem C (Parte 4)Linguagem C (Parte 4)
Linguagem C (Parte 4)
 
Linguagem C (Parte 3)
Linguagem C (Parte 3)Linguagem C (Parte 3)
Linguagem C (Parte 3)
 
Linguagem C (Parte 1)
Linguagem C (Parte 1)Linguagem C (Parte 1)
Linguagem C (Parte 1)
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
Tabela de Integrais
Tabela de  IntegraisTabela de  Integrais
Tabela de Integrais
 
Tempo de vida das variaveis
Tempo de vida das variaveisTempo de vida das variaveis
Tempo de vida das variaveis
 

Introdução à Programação em Linguagem C

  • 1. Introdução à Programação em Linguagem C Rodolfo Riyoei Goya http://rgoya.sites.uol.com.br rgoya@uol.com.br
  • 2. Modelo Abstrato de Programação Elementos Estruturais Dados de Tipo Simples Dados em Estruturas Homogêneas Dados em Estruturas Heterogêneas Elementos Algorítmicos Declaração Comandos de Entrada/Saída Comandos de Expressão Comandos de Decisão Comandos de Iteração 16.02.14 Linguagem C Rodolfo Goya 2
  • 3. Comandos Básicos de Entrada/Saída Fazem a “comunicação” entre o programa e o mundo exterior, através dos dispositivos de entrada padrão (stdin) e saída padrão (stdout) Comandos básicos: Saída de Caracter: putchar(), putc(), putch() Entrada de Caracter: getchar(), getc(), getch(), getche() Saída Formatada: printf() Entrada Formatada: scanf() 16.02.14 Linguagem C Rodolfo Goya 3
  • 4. putchar() Envia um caracter para o dispositivo de saída padrão (stdout) Biblioteca stdio.h Equivalente a putc( char, stdout ) Converte um valor de 8 bits segundo a tabela ASCII Pode enviar valores de constantes e variáveis: #include <stdio.h> . char c = ‘?’, d = 49; putchar( c ); putchar( d ); putchar( 65 ); putc( ‘A’, stdout );
  • 5. putch() Envia um caracter para o dispositivo de saída padrão (stdout - console) Biblioteca conio.h Converte um valor de 8 bits segundo a tabela ASCII Pode enviar valores de constantes e variáveis: #include <conio.h> char c = ‘?’, d = 49; putch( c ); putch( d ); putch( 65 ); putc( ‘A’, stdout );
  • 6. getchar() Recebe um caracter do dispositivo de entrada padrão (stdin - console) ecoando o caracter recebido. Aguarda “Enter” para finalizar. Biblioteca stdio.h Equivalente a getc( stdin ) Converte um valor de 8 bits segundo a tabela ASCII #include <stdio.h> . char c, d; c = getchar(); d = getc( stdin );
  • 7. getche() Recebe um caracter do dispositivo de entrada padrão (stdin - console) ecoando o caracter recebido. Não aguarda “Enter” para finalizar. Biblioteca conio.h Converte um valor de 8 bits segundo a tabela ASCII #include <conio.h> . char c; c = getche();
  • 8. getch() Recebe um caracter do dispositivo de entrada padrão (stdin - console) sem ecoar o caracter recebido. Não aguarda “Enter” para finalizar. Biblioteca conio.h Converte um valor de 8 bits segundo a tabela ASCII #include <conio.h> . char c, d; c = getch(); d = getch();
  • 9. printf() Exibe uma saída formatada para o dispositivo de saída padrão (stdout) Biblioteca stdio.h Exemplo #include <stdio.h> . int i = 10; printf( “Este programa é bacana.” ); printf( “O valor de i é: %d”, i );
  • 10. printf() Os marcadores iniciados com ‘%’ são substituídos por variáveis ou expressões listados em seguida no comando printf A ordem que os marcadores aparecem define a ordem das variáveis/expressões usadas para substituí-los. O formato geral dos marcadores é: %[Flags][Largura].[Precisão][Tamanho][Tipo]
  • 11. printf() - Marcadores %[Flags][Largura].[Precisão][Tamanho][Tipo] Flags (Opcional): Um ou mais dentre os caracteres -, +, # ou 0 especificando a justificação do número e o uso ou não de sinal e do ponto decimal no valor impresso. Largura (Opcional): Um número que especifica quantos caracteres, no mínimo, devem ser utilizados na impressão. Precisão (Opcional): Um número que especifica quantos caracteres, no máximo, devem ser utilizados na impressão.
  • 12. printf() - Marcadores %[Flags][Largura].[Precisão][Tamanho][Tipo] Tamanho (Opcional): Um caracter que modifica o campo Tipo que vem a seguir. Se for um h antes de um tipo d, i, o, x, X ou u especifica que o argumento é de tipo short. Se for um l antes de um tipo d, i, o, x, X ou u especifica que o argumento é de tipo long. Se for um ll antes de um tipo d, i, o, x, X ou u especifica que o argumento é de tipo long long (64 bits). Se for um l antes de um tipo e, E, f, g, G especifica que o argumento é de tipo double. Se for um L antes de um tipo e, E, f, g, G especifica que o argumento é de tipo long double. Tipo (Obrigatório): O ítem mais importante desta lista. Uma letra que especifica o tipo da variável a ser impressa.
  • 13. printf() – Tipo Tipo Tipo de Dado Descrição %d int Inteiro %u unsigned Inteiro (sem sinal) %ld long Inteiro long %lu unsigned long Inteiro long (sem sinal) %hd short Inteiro short %hu unsigned short Inteiro short (sem sinal) %lld long long Inteiro long long %llu unsigned long long Inteiro long long (sem sinal)
  • 14. printf() – Tipo Tipo Tipo de Dado Descrição %% Caracter ‘%’ %c char Caracter %o octal Octal (sem sinal) %x hexadecimal Hexadecimal com letras minúsculas (sem sinal) %X hexadecimal Hexadecimal com letras maiúsculas (sem sinal)
  • 15. printf() – Tipo Tipo Tipo de Dado Descrição %e double ou float Ponto flutuante em notação científica %E double ou float Ponto flutuante em notação científica (usando E) %f double ou float Ponto flutuante na forma (sinal)(dígitos).(dígitos) %g double ou float Escolhe dentre f ou e o que produz a saída mais compacta. %G double ou float Idem ao g (usando F ou E). %Le long double Ponto flutuante em notação científica %Lf long double Ponto flutuante na forma (sinal)(dígitos).(dígitos) %Lg long double Escolhe dentre f ou e o que produz a saída mais compacta. %s char[] Imprime uma cadeia de caracteres até encontrar ‘0’
  • 16. printf() – Flag Flag Significado Default - Valor impresso justificado para a esquerda dentro de um campo grande o bastante para contê-lo Justificado para a direita + Se a impressão for de um número será impresso ‘+’ ou ‘-’ de acordo com o sinal do número Um sinal ‘-’ é impresso para valores negativos 0 Os números são preenchidos com zeros a esquerda Os números são preenchidos com espaços em branco
  • 17. printf() – Precisão Tipo Significado de precisão Default c Ignorada. Só um caracter é impresso. d u i l ll o x X Especifica o número mínimo de dígitos a ser impresso. Se o número ocupar menos dígitos que o especificado é preenchido com brancos ou zeros (depende do flag usado). Se o número ocupar mais dígitos ele é impresso mesmo assim (nunca é truncado). Se não for especificada ou se for zero ou apenas um ponto decimal sem um número depois dele, o valor default será 1. e E Le LE Número de dígitos a serem impressos depois do ponto decimal. Se especificado 0, não imprime nem o ponto decimal. 6 dígitos. F LF Número de dígitos a serem impressos depois do ponto decimal. Se especificado 0, não imprime nem o ponto decimal. 6 dígitos. g G Lg LG Especifica o número de algarismos significativos a serem impressos. Todos os algarismos significativos s O número total de caracteres impresso. Preenche com brancos se for menor e trunca se for maior. Todo o string.
  • 18. scanf() Recebe entrada formatada no dispositivo de entrada padrão (stdin) Biblioteca stdio.h Usa os mesmos marcadores que o printf() Admite múltiplas entradas por comando, inclusive com marcadores de conversão diferentes Exige o operador ‘&’ antes dos nomes das variáveis (exceto quando se tratam de variáveis de tipo strings)
  • 19. scanf() - Exemplo Exemplo #include <stdio.h> . int i, j; float x; char nome[20]; scanf( “%d”, &i ); scanf( “%d %f”, &j, &x ); scanf( “%s”, nome );
  • 20. Redirecionamento A entrada/saída pode ser redirecionada A entrada padrão (stdin) pode ser redirecionada pelo comando freopen() para vir de um arquivo. Por exemplo: freopen( "in.txt", "r", stdin ); Neste caso, toda entrada virá do arquivo in.txt A saida padrão (stdout) pode ser redirecionada pelo comando freopen() para ser enviada a um arquivo. Por exemplo: freopen( "out.txt", "w", stdout ); Neste caso, toda saída irá para o arquivo out.txt
  • 21. Conclusões A comunicação é parte essencial de qualquer programa. Pode ser interativa (com o usuário) ou com entrada e saída através de arquivos (também denominada de “batch”) Os comandos de entrada/saída em linguagem C permitem a comunicação direta na forma de caracteres codificados em ASCII ou executando a conversão desses caracteres de/para números inteiros, em ponto flutuante, hexadecimal e octal O comando printf() permite um controle fino do formato em que a saída será impressa