Introdução:
Imprimirf() e Scanf() são funções de biblioteca embutidas na linguagem C que executam entrada formatada e saída formatada funções. Essas funções são definidas e declaradas em arquivo de cabeçalho stdio.h . O 'f' em imprimir e scanf apoia 'formatado' . Então, ambas as funções imprimirf() e scanf() use códigos dentro de uma string de formato para especificar como os valores de saída ou entrada devem ser formatados. Precisamos importar o arquivo de cabeçalho para usar imprimirf() e scanf() :
#include
Neste artigo, discutiremos sobre a diferença entre printf() e scanf(), mas antes de discutir as diferenças, devemos saber sobre printf() e scanf() com sua sintaxe e exemplos.
Imprimirf():
Isto estampas qualquer coisa entre aspas duplas com especificadores de formato %c, %d,%f, etc., para mostrar o valor de uma variável ou constante e também pode ter caracteres de sequência de escape como , para nova linha, e guia horizontal , respectivamente.
renomear uma pasta linux
Sintaxe:
printf('(string) %format_specifier (string)',variable);
Scanf():
Permite ler um ou vários valores inseridos pelo usuário através do teclado do console. Podemos colocar quantos especificadores de formato quantas entradas quisermos com ou sem formato.
Sintaxe:
scanf(%format_specifier, &pointer_to_variable);
String do especificador de formato:
No primeiro parâmetro de imprimir e scanf , nós passamos sequência de formato ou string do especificador de formato e especificamos que tipo de valor o usuário irá inserir.
Tipo de dados | Conversão | sequência de formato |
---|---|---|
Inteiro | Inteiro curto | %d ou %i |
curto não assinado | % em | |
assinado há muito tempo | % ld | |
há muito tempo sem assinatura | % Lu | |
hexadecimal sem sinal | % x | |
octal sem sinal | %O | |
Real | flutuador | % f ou % g |
dobro | %se | |
caractere assinado | %c | |
caracter não identifcado | %c | |
corda | %s |
Por exemplo, se um usuário inserir vinte como entrada, como vinte é um valor inteiro decimal , especificamos todos os valores inteiros decimais em C usando o %d especificador de formato . De forma similar, valores flutuantes são especificados usando %f .
Código Básico para Printf() e Scanf():
Exemplo 1:
#include int main() { int a, b; int sum = 0, sub = 0, mul = 0; printf('Please enter the two values:'); /* Read input */ scanf('%d%d', &a, &b); sum = a+b; sub = a-b; mul = a*b; /* Print output */ printf('The sum = %d sub = %d mul = %d', sum, sub, mul); return 0; }
Saída:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Explicação:
No programa acima, estamos usando o scanf() para ler a entrada do console e armazená-la em variáveis a e b. Depois disso, realizamos operações aritméticas como Adição , subtração , e multiplicação e posteriormente armazenar os resultados no três novas variáveis (Sum, Sub, Mul). Finalmente, usando o função printf() , estamos imprimindo os resultados.
Exemplo 2: -
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
No programa acima, scanf() lê duas entradas do programa mesmo que estejamos passando uma variável porque especificamos dois especificadores de formato . Lembre-se sempre, em scanf()/printf() todos especificadores de formato que passamos deve ser o mesmo, caso contrário, poderemos obter alguns erros inesperados de tempo de execução.
Exemplo 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Saída:
inserir no teclado
5 Execution finished...
Explicação:
No programa acima, scanf() lê apenas uma entrada do usuário porque especificamos apenas um especificador de formato . Portanto, a partir deste exemplo, concluímos que nenhuma das entradas será tomada dependendo do número de especificadores de formato .
Exemplo 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Saída:
6 Segmentation fault
Explicação:
No programa acima, estamos passando o valor de uma variável para scanf() em vez do endereço da variável. Isso levará a um erro em tempo de execução . No Linux, obteremos um erro de falha de segmentação.
rede neural artificial
Exemplo 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Saída:
the value of a = 10, the value of b = 20
Explicação:
No programa acima, quando imprimir verifica a string de formato, ela substituirá o especificadores de formato (%d) com os valores reais que passamos para imprimirf() . ou seja, o primeiro especificador de formato será substituído pelo primeiro valor que passamos imprimirf(), e assim por diante.
Diferenças básicas entre Printf() e Scanf()
Algumas diferenças entre printf e scanf são: -