Compartilhamento de tecnologia

Linguagem C - printf, scanf, outras funções de entrada e saída

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

função printf

1. Formato geral da função printf:


O formato geral da função printf é printf (controle de formato, lista de saída)
Por exemplo:

printf("%d,%cn",i,c);

(1) "Controle de Formato"

É uma string entre apóstrofos duplos, chamada de "string de controle de conversão" ou "string de formato" para abreviar. Inclui duas informações:
① Declaração de formato. A declaração de formato consiste em "%" e caracteres de formato, como %d, %f, etc. Sua função é converter os dados de saída no formato especificado e depois produzi-los. As declarações de formato sempre começam com o caractere "%".

Entre eles: d representa um número inteiro decimal, c representa um único caractere, s representa vários caracteres, f representa um decimal, x representa a saída em formato hexadecimal, p representa o endereço da memória de impressão, que também é gerado em formato hexadecimal O endereço de saída usa. Símbolo de operação de endereço variável &.
② Personagens comuns. Caracteres comuns são caracteres que precisam ser gerados inalterados durante a saída. Por exemplo, as vírgulas, espaços e novas linhas dentro das vírgulas duplas na função printf acima também podem incluir outros caracteres.


(2) "Coluna da tabela de saída"

São alguns dados que o programa precisa gerar, que podem ser uma constante, variável ou expressão.

Observação:
(1) Conversão forçada: converta números inteiros em decimais
  1. int data = 10;
  2. int chushu = 3;
  3. float result;
  4. result = (float)data/chushu;
(2) Especifique a largura dos dados e o número de casas decimais, use %m.nf
O formato "%7.2" foi usado para especificar que os dados de saída ocupam 7 colunas, incluindo 2 casas decimais. O último dígito é arredondado, ou seja, o valor aproximado é levado para cima ou para baixo. Se Tathagata especificar a parte decimal como 0, não apenas o decimal não será gerado, mas o ponto decimal também não será gerado. Portanto, não especifique facilmente o número de casas decimais como 0.
(3) Os dados de saída são alinhados à esquerda, usando %-m.nf
Adicionar um sinal negativo na frente de m e n tem basicamente o mesmo efeito que o formulário %m.nf. No entanto, quando o comprimento dos dados não excede m, os dados são movidos para a esquerda e os espaços são preenchidos na extremidade direita.

função scanf

1.Forma geral da função scanf


scanf (controle de formato, coluna da tabela de endereços)

O significado de "controle de formato" é o mesmo da função printf. “Coluna da tabela de endereços” é uma coluna da tabela composta por diversos endereços, que podem ser o endereço de uma variável ou o primeiro endereço de uma string.


2.Formate o som na função scanf


Semelhante à declaração de formato na função printf, ela começa com% e termina com um caractere de formato, e caracteres adicionais podem ser inseridos no meio.
A função scanf pode ser reescrita no seguinte formato

scanf("a=%f,b=%f,c=%f",&a,&b,&c);


Além da declaração de formato %f, também existem alguns caracteres comuns (incluindo "a=", "b=" e ",") na string de formato.

Observação:

(1)Símbolo de endereço e

O "controle de formato" na função scanf deve ser seguido pelo endereço da variável, não pelo nome da variável.Por exemplo, se aeb são variáveis ​​inteiras, se escritas como

scaní("%f%f%f",a,b,c);

está errado. "a,b,c" deve ser alterado para "&a,&b,&c". Muitos iniciantes cometem esse erro.

(2) Digite como está

Se houver outros caracteres na "string de controle de formato" além da declaração de formato, os mesmos caracteres desses caracteres deverão ser inseridos nas posições correspondentes ao inserir os dados.Se houver

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

Ao inserir dados, os mesmos caracteres devem ser inseridos nas posições correspondentes.ou seja, entrada
a=1,b=3,c=2 (preste atenção ao conteúdo de entrada)

Portanto, não adicione espaços, vírgulas e outros símbolos ao scanf (não há problema em usar entrada de nova linha se houver espaços), apenas escreva diretamente os dados de entrada necessários:

scanf("%d%d%f",&data,&data1,&data2);
(3) Entrada de caracteres

Ao declarar caracteres de entrada no formato "%c", caracteres de espaço e caracteres em "caracteres de escape" são inseridos como caracteres válidos, por exemplo:
 

scanf("%c%c%c,&c1,&c2,&c3);

Ao executar esta função, você deve inserir 3 caracteres consecutivos sem espaços entre eles.
Seria errado inserir um espaço entre dois caracteres.

Espaços e novas linhas também são caracteres. Você não pode usar espaços ou novas linhas ao inserir.

(4) Entrada mista

Ao inserir dados numéricos, se você inserir um espaço, retorno de carro, tecla Tab ou encontrar caracteres ilegais (caracteres que não pertencem a valores numéricos), os dados serão considerados encerrados. Por exemplo:
 

scanf("%d%c%f,&a,&b,&c);

A entrada correta é: 1234h7.6

Os primeiros dados correspondem ao formato %d Após inserir 1234, o caracter 'h' é encontrado. Portanto, o sistema pensa que não há dígitos após o valor 1234. Os primeiros dados devem terminar aqui, então 1234 é enviado para a variável. a. Envie o caractere subsequente 'h' para a variável de caractere b Como %c requer apenas a entrada de um caractere, o sistema determina que a entrada do caractere terminou, portanto não há necessidade de adicionar um espaço após o caractere de entrada '. h'. O valor após o caracter 'h' deve ser enviado para a variável c. Se 1230.26 for digitado erroneamente como 123o.26 por negligência, já que a letra o aparece depois de 123, considera-se que os dados numéricos terminam aqui, e os caracteres seguintes não são lidos.

Portanto, quando inserimos diferentes tipos de dados, devemos criar funções scanf correspondentes por tipo. Existem várias funções scanf para vários tipos.

(5) Múltiplas funções scanf

Quando um programa contém duas ou mais funções scanf, a última função scanf considerará o caractere de nova linha após a entrada da função scanf anterior como sua própria entrada. Como resultado, a última função scanf não pode obter entrada normalmente, portanto deve ser usada. entre as duas funções scanf. Entre as funções scanf, insira um getchar() para absorver o caractere de nova linha extra.

Outras funções de entrada e saída:

coloca: diferença de printf
(1). Adicione automaticamente quebras de linha.
(2).printf suporta uma variedade de padrões de saída e puts é a string de saída.

obtercaractere,colocarcaractere

Exercícios de entrada e saída:

1. Insira letras maiúsculas e produza letras minúsculas

O conhecimento dos códigos ASCII é usado aqui. O código ASCII + 32 correspondente às letras maiúsculas é o código ASCII correspondente às letras minúsculas.

Portanto, o exemplo de código é

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a;
  5. char b;
  6. printf("请输入一个大写字母:");
  7. scanf("%c",&a);
  8. b = a+32;
  9. printf("其对应的小写字母为:%c",b);
  10. return 0;
  11. }