Fundamentos do Função scanf () em C Programming

Para a entrada de tipos específicos de variáveis ​​na linguagem de programação C, você vai descobrir que a função scanf () vem a calhar. Não é uma função de entrada de uso geral, e tem algumas limitações, mas é ótimo para testar código ou agarrando valores.

De certa forma, você poderia argumentar que scanf () é a versão de entrada da função printf (). Por exemplo, ele usa os mesmos personagens de conversão (a% de espaço reservado-coisas). Por causa disso, scanf () é bastante particular sobre como o texto é de entrada. Aqui é o formato:

#include int scanf (char const * restringir formato, ...) -

Assustador, não é? Simplesmente ignorá-la por agora. Aqui está uma versão menos assustador do formato:

scanf ( "espaço reservado", variável) -

Nesta versão, espaço reservado é um personagem de conversão e variável é um tipo de variável que corresponde ao caractere de conversão. A menos que seja uma string (matriz de char), a variável é prefixado pelo operador.

A função scanf () é prototyped no arquivo de cabeçalho stdio.h, por isso você deve incluir esse arquivo quando você usa a função.

Aqui estão alguns scanf () exemplos:

scanf ( "% d", highscore) -

A instrução anterior lê um valor inteiro para a variável pontuação máxima. Isso pressupõe que pontuação máxima é uma variável int.

scanf ( "% f", temperatura) -

Os anteriores scanf () Declaração espera por um valor de ponto flutuante para ser de entrada, que é então armazenado no temperatura variável.

scanf ( "% c", key) -

Na linha anterior, scanf () aceita a primeira entrada de caracteres e armazena-o na chave variável.

scanf ( "% s", nome) -

O espaço reservado% s é usado para ler no texto, mas só até o primeiro caractere espaço em branco é encontrado. Assim, um espaço ou uma guia ou a tecla Enter termina a string. (Isso é péssimo.) Além disso, primeiro nome é uma matriz de caracteres, por isso não precisa do operador na função scanf ().

Como ler uma string com scanf ()

Uma das maneiras mais comuns para colocar a função scanf () para usar é ler em um pedaço de texto da entrada padrão. Para atender a esse fim, caractere de conversão% s é utilizado - tal como em printf (), mas com entrada em vez da saída.

Scanf () ANDORINHAS UMA CORDA

#include int main () {char nome próprio [15] -printf ( "Escreva seu nome:") -scanf ( "% s", nome) -printf ( ". Prazer em conhecê-lo,% s n", nome ) -Retornar (0) -}

Exercício 1: Digite o código-fonte do scanf () Engole uma String em um novo projeto, ex0712, no Code :: Blocks. Construir e executar.

Linha 5 declara uma matriz de char - uma variável string - nomeado primeiro nome. O número entre parênteses indica o tamanho da matriz, ou o número total de caracteres que podem ser armazenados ali. A matriz não é atribuído um valor, por isso é criado vazio. Basicamente, a declaração na Linha 5 deixa de lado armazenamento para até 15 caracteres.

A função scanf () na linha 8 lê uma cadeia de entrada padrão e armazena na primeiro nome array. caractere de conversão% s dirige scanf () para procurar uma string como entrada, assim como% s é um espaço reservado para cordas em printf () 's saída.

exercício 2: Modificar o código fonte a partir scanf () Engole uma String de modo que uma segunda corda é declarada para o último nome da pessoa. Pedir ao utilizador para o seu último nome, bem como, e em seguida, exibir ambos os nomes usando uma única função printf ().

  • O número entre parênteses (referem-se a linha 5) dá o tamanho da matriz de caracteres, ou o comprimento da cadeia, mais um.

  • Quando você cria uma matriz de char, ou variável de cadeia, garantir que você criá-la de um tamanho suficientemente grande para conter o texto. Esse tamanho deve ser o número máximo de caracteres mais um.

  • A razão para o aumento do tamanho matriz de char por um é que todas as cadeias em C terminam com um carácter específico rescisão. É o caractere NULL, que é escrito como 0. O compilador adiciona automaticamente o 0 para o final da seqüência de caracteres valores que você criar no seu código-fonte, bem como o texto lido por várias funções de entrada de texto.

    Você deve lembrar de adicionar espaço para que o personagem quando você reserva de armazenamento para a entrada de string.

Como ler os valores com scanf ()

A função scanf () pode fazer mais do que ler strings. Ele pode ler em qualquer valor especificado por um caractere de conversão.

Scanf () COME um inteiro

#include int main () {int fav-printf ( "Qual é o seu número favorito:") -scanf -printf ( "% d", fav) ( "!% d é o meu número favorito, também n", fav) -Retornar (0) -}

Dentro scanf () Come um número inteiro, a função scanf () lê em um valor inteiro. O caractere de conversão% d é usado, assim como printf () - na verdade, ele é usado em Linha 9. Esse personagem dirige scanf () para procurar um valor int para a variável fav.

exercício 3: Criar um projeto, ex0714, usando o código-fonte apresentado na scanf () Come um Integer. Construir e executar. Teste o programa digitando vários valores inteiros, positivos e negativos.

Talvez você esteja se perguntando sobre o comercial () na função scanf (). O personagem é um operador C - especificamente, a endereço de memória operador. É uma das características avançadas em C que está relacionado com ponteiros. Um e comercial deve prefixar qualquer variável especificada na função scanf (). A exceção é uma matriz, tais como a matriz firstname char scanf () Come um Integer.

Tente executar o programa novamente, mas especificar um valor decimal, tal como 41,9, ou digite texto em vez de um número.

A razão pela qual você vê saída incorreta é que scanf () é muito específico. Ele busca apenas o tipo de variável especificado pelo caractere de conversão. Então, se você quer um valor de ponto flutuante, você deve especificar uma variável de bóia e usar a conversão apropriada caracterização% f, nesse caso.

exercício 4: Modificar o código fonte a partir scanf () Come um número inteiro de modo que um número de ponto flutuante é solicitado, de entrada, e exibido.

  • Você não precisa prefixar uma variável matriz de char com um e comercial no funciona- scanf () ao usar scanf () para ler em uma string, basta especificar o nome da variável string.

  • A função scanf () pára de ler a entrada de texto no primeiro caractere espaço em branco, espaço, guia, ou a tecla Enter.

menu