C ++ freopen () - Biblioteca C ++ Padrão

A função freopen () em C ++ tenta abrir um novo arquivo com um fluxo de arquivo associado a outro arquivo aberto.

A função freopen () é definida no arquivo de cabeçalho.

protótipo freopen ()

 FILE * freopen (const char * filename, modo const char *, FILE * stream);

A função freopen primeiro tenta fechar o arquivo aberto usando stream. Depois que o arquivo é fechado, ele tenta abrir o nome do arquivo especificado pelo argumento filename (se não for nulo) no modo especificado pelo modo do argumento. Finalmente, ele associa o arquivo ao fluxo de fluxo de arquivos.

Se filename for um ponteiro nulo, a função freopen () tenta reabrir o arquivo que já está associado ao stream.

Parâmetros freopen ()

  • nome do arquivo: Novo arquivo a ser aberto.
  • modo: Modo para abrir o arquivo. Os diferentes tipos de modo de acesso a arquivos são os seguintes:
Diferentes modos de operação de arquivo
Modo de acesso ao arquivo Interpretação Se o arquivo existir Se o arquivo não existe
"r" Abre o arquivo em modo de leitura Leia desde o início Erro
"W" Abre o arquivo no modo de gravação Apague todo o conteúdo Criar novo arquivo
"uma" Abre o arquivo no modo anexar Comece a escrever a partir do final Criar novo arquivo
"r +" Abre o arquivo em modo de leitura e gravação Leia desde o início Erro
"w +" Abre o arquivo em modo de leitura e gravação Apague todo o conteúdo Criar novo arquivo
"a +" Abre o arquivo em modo de leitura e gravação Comece a escrever a partir do final Criar novo arquivo
  • stream: O stream de arquivo ao qual associar o nome do arquivo.

freopen () Valor de retorno

A função freopen () retorna:

  • fluxo no sucesso.
  • NULL em caso de falha.

Exemplo: Como funciona a função freopen ()?

 #include #include int main() ( FILE* fp = fopen("test1.txt","w"); fprintf(fp,"%s","This is written to test1.txt"); if (freopen("test2.txt","w",fp)) fprintf(fp,"%s","This is written to test2.txt"); else ( printf("freopen failed"); exit(1); ) fclose(fp); return 0; )

Quando você executa o programa:

 O seguinte será escrito em test1.txt: Este é escrito em test1.txt O seguinte será escrito em test2.txt: Este é escrito em test2.txt

Artigos interessantes...