Estou aprendendo Cem manipulação de dados,e no código da um erro que o progama mostra caracteres estranhos,o objetivo é fazer um software que manipula arquivos .txt 
<code>
#include <stdio.h>
#include <stdlib.h>
 
FILE* abertura(char modo, char caminho[30]){//Está função de abertura do arquivo,a variavel modo,pode ser g,a,r e a caminho com 30 posições sera o caminho do arquivo que sera aberto
//A função tem que ser FILE pois vai retornar o arquivo(ponteiro)
    FILE *arquivo;
    switch(modo){//Vai verificar o modo
    case 'g':
        arquivo = fopen(caminho , "wt");
        break;
    case 'l':
        arquivo = fopen(caminho ,"rt");
        break;
    case 'a':
        arquivo = fopen(caminho , "a");
        break;
    }
    /*
    G - É para gravação,o parametro wt
    a - É para append(anexação)
    l - É para leitura  do texto
    */
    if(arquivo == NULL){//A diretiva NULL em letras maiusculas,é quando a pontar para o espaço da memoria NULO,ou NULL,caso o arquivo não exista
        printf("Desculpe!\nO arquivo não foi encontrado.");
        exit(0);
    }
    return arquivo;
}
 
void finalizar(FILE *arquivo){//Está função vai fechar
    fclose(arquivo);
}
 
int main(){
   
 
return 0;
}
 
</code>  
Será que é por que tem que estar em um documento C++