CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá
Aula 05 Entrada de dados Leia scanf ou cin
Entrada de Dados Entrada de dados compreende a operação realizada pelo usuário do programa de fornecer o conteúdo de uma informação ao computador e este armazenar esta informação numa variável. Os dispositivos disponíveis para a execução desta tarefa são: o teclado, um arquivo.
Entrada de Dados Embora a operação de atribuição tenha a mesma função, ela é operacionalmente diferente da entrada de dados, pois enquanto a atribuição, atribui um valor fixo e conhecido no programa, a entrada de dados permite ao usuário fornecer qualquer valor à variável em tempo de execução do programa. Para valores conhecidos e constantes, utiliza-se atribuição; Para valores não conhecidos a priori, utiliza-se entrada de dados.
Entrada de Dados Em linguagem algorítmica tem-se: leia (informação) Esta informação deve ser o nome de uma variável, onde o valor fornecido pelo usuário do programa vai ser armazenado.
Leia com Inteiro inteiro soma_valor, media_idades leia ( soma_valor ) leia ( media_idades ) Ou ainda: leia ( soma_valor, media_idades )
Leia com Inteiro Ou ainda, com identificação da entrada para o usuário: imprima ( entre com a soma dos valores ) leia ( soma_valor ) imprima ( entre com a media das idades ) leia ( media_idades )
Leia com Inteiro inteiro a, b, c imprima ( entre com o valor de a ) leia ( a ) imprima ( entre com o valor de b ) leia ( b ) c a+b imprima ( Valores Lidos: ) imprima ( a =, a ) imprima ( b =, b ) imprima ( Soma dos valores lidos: ) imprima ( c =, c )
Leia com Inteiro entre com o valor de a neste ponto o usuário digita um valor entre com o valor de b neste ponto o usuário digita um valor Valores lidos: a =... b =... Soma dos valores lidos: c =...
Leia com Real real pi, angulo leia ( pi ) leia ( angulo ) Ou ainda: leia ( pi, angulo )
Leia com Real Ou ainda, com identificação da entrada para o usuário: imprima ( entre com o valor de pi ) leia ( pi ) imprima ( entre com o angulo ) leia ( angulo )
Leia com Caracter caracter vogal, letra leia ( vogal ) leia ( letra ) Ou ainda: leia ( vogal, letra )
Leia com Caracter Ou ainda, com identificação da entrada para o usuário: imprima ( entre com uma vogal ) leia ( vogal ) imprima ( entre com uma letra ) leia ( letra )
Leia com Cadeia cadeia nome, nome_curso leia ( nome ) leia ( nome_curso ) Ou ainda: leia ( nome, nome_curso )
Leia com Cadeia Ou ainda, com identificação da entrada para o usuário: imprima ( entre com um nome ) leia ( nome ) imprima ( entre com o nome do curso ) leia ( nome_curso )
Entrada de Dados Definição: Entrada de dados compreende a operação realizada pelo usuário do programa de fornecer o conteúdo de uma informação ao computador e este armazenar esta informação na memória (variável). C ou C++ Em C ou C++ utiliza-se a função scanf (const char* formato, variable); C++ Em C++ utiliza-se, também, a função cin >> variable;
Scanf Definição: scanf é a função no C a qual se usa para ler valores do teclado ou arquivo. Estrutura Divide em duas partes. Entre as aspas ( ) ficam as strings e os formatos. Após a virgula deve se colocar as variáveis, tomando o cuidado de colocar a mesma quantidade de variáveis e formato.
Scanf Exemplo: scanf("%d", &variavel); Nesse caso variavel é uma variável inteira. É obrigatório para todos os tipos, exceto cadeia ou string, string a utilização do sinal & antes do nome da variável de entrada; Os formatos são precedidos do carácter %, conforme visto na tabela de formatação no printf.
Scanf Se for o caso: scanf("a%d", &variavel); Com isto, a string A deve ser ignorada quando você digitar, por exemplo, A10. A10 OBSERVAÇÃO: O scanf não precisa pular linha.
Entrada de valores inteiros A leitura de valores inteiros #include <bits/stdc++.h> using namespace std; int main() { int i; long long int j; scanf("a[%d]", &i); printf("x[%d]\n", i); scanf("%d", &i); printf("%05d\n", i); scanf("%lld", &j); printf("%lld\n", j); return 0; }
Entrada de valores inteiros Resultado do programa. A[10] X[10] 10 00010 10 10
Cin Objeto cin: O objeto cin representa o stream de entrada no C+ +. Ele realiza a leitura de um sequência de dados, sem espaços e sem tabulações, vindas do teclado. Para coletar estes dados armazenados, usa-se o "operador de extração" extração que "extrai" extrai dados do stream. stream
Cin >> Operador de Extração: O operador >> sobrecarregado executa a entrada com streams em C++, usando o comando cin para aquisição de dados. Variáveis podem ser usadas para o armazenamento das informações. https://www.inf.pucrs.br/~pinho/prgswb/streams/streams.html
Entrada de valores inteiros A leitura de valores inteiros #include <bits/stdc++.h> using namespace std; int main() { int i; long long int j; cin >> i; cout << i << endl; cin >> j; cout << j << endl; return 0; }
Entrada de valores inteiros Resultado do programa. 10 10 10 10
Entrada de valores reais A leitura de valores reais #include <bits/stdc++.h> using namespace std; int main() { float x; double y; scanf("%f", &x); printf("%f\n", x); scanf("%lf", &y); printf("%lf\n", y); return 0; }
Entrada de valores reais Resultado do programa. 343.235 343.234985 343.235 343.235000
Entrada de valores reais A leitura de valores reais #include <bits/stdc++.h> using namespace std; int main() { float x; double y; cin >> x; cout << x << endl; cin >> y; cout << y << endl; return 0; }
Entrada de valores reais Resultado do programa. 343.235 343.235 343.235 343.235
Entrada de UM Carácter A leitura de carácter #include <bits/stdc++.h> using namespace std; int main() { char ch; scanf (" %c", &ch); printf("%c\n", ch); cin >> ch; cout << ch << endl; return 0; } CUIDADO Tem que colocar um espaço em branco antes do %c.
Entrada de UM Carácter Resultado do programa. a a a a
Entrada de Cadeia ou String A leitura de cadeia e string CUIDADO Tem que colocar um espaço em branco antes do %s. #include <bits/stdc++.h> using namespace std; int main() { char st[40], st1[40]; scanf (" %s", st); printf("%s\n", st); CUIDADO scanf (" %[^\n]", st); Lê até encontrar printf("%s\n", st); um espaço em branco scanf (" %[^-]-%[^\n]", st, st1); ou o fim da linha. printf("%s %s\n", st, st1); return 0; } O %[^\n] serve somente no scanf().
Entrada de Cadeia ou String Resultado do programa. Roberto Roberto Roberto Affonso Roberto Affonso Roberto-Affonso Roberto Affonso
Entrada de Cadeia ou String A leitura de cadeia e string #include <bits/stdc++.h> using namespace std; int main() { char st[40]; cin.getline(st, 40); cout << st << endl; cin >> st; cout << st << endl; return 0; } CUIDADO Lê até encontrar um espaço em branco ou o fim da linha.
Entrada de Cadeia ou String Resultado do programa. Roberto Roberto Roberto Roberto Affonso Affonso Affonso
Entrada de Cadeia ou String Se usar uma variável de C++ declarada com o tipo string, string deve usar somente cin e cout. cout #include <bits/stdc++.h> using namespace std; int main() { string st; getline(cin, st); cout << st << endl; cin >> st; cout << st << endl; return 0; } CUIDADO Lê até encontrar um espaço em branco ou o fim da linha.
Entrada de Cadeia ou String Resultado do programa. Roberto Roberto Roberto Roberto Affonso Affonso Affonso
cin-cout vs scanf-printf Quando devemos usar cin-cout ou scanf-printf? Quando você tiver domínio dos dois e achar mais comodo. Se quiser ver uma boa comparação vá a página abaixo. https://www.geeksforgeeks.org/cincout-vs-scanfprintf/
Exercícios https://www.urionlinejudge.com.br/judge/en/login URI 1957, 2757 a 2766, menos o 2760 (está errado)