entrada de caracteres / saída e de entrada de validação

amortecedor

Buffer é dividido em dois tipos:

  1. Totalmente tamponada: ele é esvaziado (conteúdo enviado ao destino) quando o buffer está cheio
  2. Buffer de linha: Buffer serão apagados quando o encontro de um caractere de nova linha

entrada de teclado rescisão

Arquivos, fluxos e entrada de teclado

Baixo nível I / O é usar as ferramentas básicas do sistema operacional hospedeiro para processar o arquivo, devido a diferenças no sistema, não é possível estabelecer um baixo nível comum I / O biblioteca padrão. Assim C é usado no pacote de E / S padrão , o nível mais elevado, a diferença entre o sistema para lidar com um determinado realização C, fornece o equivalente de um interface padrão

Conceitualmente, o programa C lidar com um fluxo ao invés de diretamente com arquivos.

Fluxo (fluxo) é um fluxo de dados idealizadas dados de entrada ou de saída reais córrego mapeado para o

C de entrada mimo e o dispositivo de saída comum à mesma, para tratar o mesmo ficheiro no dispositivo de armazenamento, a entrada de teclado é referido por uma corrente de entrada padrão dita saída no ecrã é representado pela corrente de saída padrão

Fim do arquivo

final detecção do arquivo de duas maneiras:

  1. Nos lugares de documentos um caractere especial para marcar o fim do
  2. Permitir que o sistema operacional para informações de tamanho arquivo de armazenamento

abordagem unificada em C: Vamos função getchar retorna o arquivo quando ele chega ao final de um EOF valor especial, independentemente do sistema operacional como detectar o fim do arquivo

Redirecionamento e arquivo

Faça programas e arquivos para trabalhar com a maneira:

  1. uso explícito para abrir o arquivo, feche o arquivo, arquivos de ler, arquivos de gravação, e outras funções especiais
  2. Um programa projetado para uso com um trabalho de teclado e tela juntos, mas usar diferentes canais para entrada de redirecionamento e saída, está prestes a fluxo stdin Reassign para um arquivo

redirecionamento de entrada

<Unix é um operador de redirecionamento, e as associações de arquivo juntos stdin stream, o conteúdo do arquivo para o guia de programação, o programa em si não se importa de entrada é um teclado ou de um arquivo

redirecionamento de saída

>O redirecionamento de dispositivo de exibição em stdout de um arquivo, se o arquivo já existe, normalmente excluir o arquivo e substituí-lo por um novo arquivo

combinação de redirecionamento

Nota:

  1. A ordem é operador de redirecionamento irrelevante
  2. Não use os mesmos nomes de entrada e arquivo de saída para o mesmo comando
  3. arquivos de entrada e de saída só pode ser uma
  4. Apenas para uma conexão com outros arquivos de dados de programas executáveis
  5. O espaço não é necessária

Criar uma interface mais amigável

Misturado introduzir números e caracteres

getchar e scanf não é bem misturado, já que cada getchar caráter ler, ao ler scanf digital irá ignorar espaços, abas, e de nova linha

confirmação de entrada

Quando a entrada scanf falhar, a entrada restante do erro na fila de entrada, desta vez pode ler o caractere de entrada pelo personagem para getchar

Um exemplo clássico de validação de entrada:

int get_int(void){
    int input;
    char ch;
    while(scanf("%d",&input)!=1){//如果输入不成功,则进入循环
        while((ch=getchar())!='\n'){//getchar逐个读取输入的字符
            putchar(ch);//剔除错误输入
        }
    }
  return input;
}

Acho que você gosta

Origin www.cnblogs.com/xkf97/p/12461945.html
Recomendado
Clasificación