Edição didática em português. O código e suas saídas preservam o original.
Arquivos em C
Abra, escreva, leia e feche arquivos com funções da biblioteca padrão.

fopen retorna um fluxo ou NULL se não conseguir abri-lo. O modo determina se você lê, acrescenta ou substitui conteúdo; abrir com w pode truncar um arquivo existente. Verifique o resultado antes de usar fprintf, fgets ou outras operações.
Controle o laço de leitura pelo resultado da função que lê, não por uma verificação antecipada de feof. fgets precisa conhecer o tamanho do buffer e pode ler uma linha em partes. Diferencie fim de arquivo de erro quando necessário.
Feche os fluxos com fclose e verifique erros de escrita. No compilador remoto, os arquivos podem existir apenas durante uma execução: não os use como armazenamento permanente nem suponha acesso aos arquivos do seu computador.
Código C
#include <stdio.h>
#include <stdlib.h>
int main(void) {
const char *filepath = "/tmp/demo_output.txt";
FILE *fout = fopen(filepath, "w");
if (fout == NULL) {
perror("Error opening file for writing");
return EXIT_FAILURE;
}
fprintf(fout, "Hello from the online C compiler file sandbox!\nLine 2: Ephemeral file storage.\n");
fclose(fout);
FILE *fin = fopen(filepath, "r");
if (fin == NULL) {
perror("Error opening file for reading");
return EXIT_FAILURE;
}
char buffer[256];
printf("--- File Content Readout ---\n");
while (fgets(buffer, sizeof(buffer), fin) != NULL) {
printf("%s", buffer);
}
fclose(fin);
return EXIT_SUCCESS;
}Abrir no compiladorSaída esperada
--- File Content Readout --- Hello from the online C compiler file sandbox! Line 2: Ephemeral file storage.
Perguntas frequentes
Por que o código e a saída continuam em inglês?
Palavras-chave, identificadores e textos verificados pelos testes são preservados para não alterar o programa. As explicações e os controles estão traduzidos.