Ficheiros e validação

Abertura, leitura, escrita, estado dos fluxos e separação entre linhas e registos.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Abrir e fechar

  • ifstream lê. ofstream escreve e substitui por defeito. app acrescenta.
  • Caminho relativo parte da pasta de trabalho, não da fonte.
  • Confirma abertura. Fecha com close() e confirma escrita. O destrutor fecha mas não trata o erro final.
  • Ficheiros correm localmente. O executor do navegador não cria ficheiros.

Condição certa do ciclo

while (entrada >> nome >> nota) {
    // os dois campos saíram bem
}
  • eof() indica que o fim foi encontrado. Não prevê a próxima leitura.
  • while (!eof()) pode repetir o último registo.
  • fail() sinaliza falha de uma operação ou conversão; fica também verdadeiro quando badbit está ativo. bad() sinaliza falha grave. Podem coexistir.
  • Depois de falha, clear() mais consumir a causa. Só limpar pode prender o ciclo.

Um registo por linha

Quando o formato exige linha completa, lê a linha e interpreta à parte.

  1. getline lê a linha, com espaços interiores.
  2. Extrai nome e nota num istringstream novo.
  3. Rejeita se falta campo, se sobra texto ou se a nota sai de 0 a 20.
LinhaResultado
Ana 15Válida
Ana, vaziaFalta campo
Eva 12abc, Leo 12 lixoSobra texto
Eva 21Fora do intervalo
  • Fluxo novo por linha isola falhas.
  • Ficheiro vazio não dá registo. Linha Ana dá registo incompleto a rejeitar.
  • binary evita conversões de texto. Não define formato portátil. Memória bruta de struct depende de padding e ordem de bytes.

Validação por linhas.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.