amortecedor
Buffer é dividido em dois tipos:
- Totalmente tamponada: ele é esvaziado (conteúdo enviado ao destino) quando o buffer está cheio
- 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:
- Nos lugares de documentos um caractere especial para marcar o fim do
- 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:
- uso explícito para abrir o arquivo, feche o arquivo, arquivos de ler, arquivos de gravação, e outras funções especiais
- 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:
- A ordem é operador de redirecionamento irrelevante
- Não use os mesmos nomes de entrada e arquivo de saída para o mesmo comando
- arquivos de entrada e de saída só pode ser uma
- Apenas para uma conexão com outros arquivos de dados de programas executáveis
- 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;
}