Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

Squadfury

Manipulação de ficheiros

Mensagens Recomendadas

Squadfury    0
Squadfury

Olá pessoal... Estou com um pequeno problema: fiz um programa e quero guardar os dados num ficheiro .txt, até aqui tudo bem... o problema é que eu quero que seja o utilizador a inserir o nome que o ficheiro terá e não sei como fazer

ofstream ficheiro("Nota.txt");
if (ficheiro.is_open())
{
for (int i = 0; i < numalunos; i++)
{
ficheiro << "****************************************" << endl;
ficheiro << setw(10) << "Alunos Aprovados" << i + 1 << ": " << aprovado[i].titulo << endl;
ficheiro << "****************************************\n" << endl;
ficheiro << " Instituicao: " << aprovado[i].instituicao << endl;
ficheiro << " nota 1: " << aprovado[i].nota1 << endl;
ficheiro << "nota 2: " << aprovado[i].nota2 <<  endl;
ficheiro << " Nota Final: " << aprovado[i].notaFinal << endl;
ficheiro << "________________________________________\n" << endl;
}
myfile.close();
cout << "Ficheiro criado com sucesso" << endl;
cout << "PRIMA qualquer tecla para voltar ao Menu Alunos...";
}

Neste exemplo o ficheiro é gravado como Nota.txt, mas eu queria saber como é que faço para que o utilizador insira o nome que quer atribuir ao ficheiro... Obrigado

Editado por Squadfury

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1139
HappyHippyHippo

sabes pedir uma string ao utilizador ?

(eu acho que sim por supor que a informação da 'instituição' é algo dado pelo utiizador)

dessa forma, é só passar essa string como argumento da função de inicialização/construção do stream de interação com o ficheiro.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Squadfury    0
Squadfury

sabes pedir uma string ao utilizador ?

(eu acho que sim por supor que a informação da 'instituição' é algo dado pelo utiizador)

dessa forma, é só passar essa string como argumento da função de inicialização/construção do stream de interação com o ficheiro.

Eu tentei fazer desta maneira: inicializei uma variável do tipo string e pedi ao utilizador que que inserisse o nome do ficheiro, depois fiz cin, mas em termos de extruturação não sei como é que ponho essa string a ser o nome do ficheiro...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1139
HappyHippyHippo

não sei como é que ponho essa string a ser o nome do ficheiro...

é só passar essa string como argumento da função de inicialização/construção do stream de interação com o ficheiro.

Editado por HappyHippyHippo

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Squadfury    0
Squadfury

sting nome;

Olha peço desculpa mas alguma coisa está a escapar-me. Como é que eu "obrigo" a que o ficheiro seja .txt? da maneira que eu fiz - só ofstream ficheiro(nome) - ele cria o ficheiro com o nome atribuido pelo utilizador mas a extensão não é .txt e eu ja tentei (nome.txt) ou (nome,".txt") e não dá.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1139
HappyHippyHippo

a variável nome irá conter o nome do ficheiro. o que tu chamas de extensão não é mais do que um artefacto no final desse nome que o sistema operativo usa para ter uma ideia de que tipo de dados o ficheiro contem.

se a extensão é algo que faz parte desse nome, então a variável nome deverá conter esse "bocado de texto" no final.

agora tens duas opções: ou obrigas o utilizador a inserir essa terminação ou adicionas tu essa terminação.

nota: a extensão não força o tipo de dados que o ficheiro contem. nota que colocares, por exemplo, .zip e escreveres texto no ficheiro, este continua a ser um ficheiro de texto passível de ser lido por qualquer editor de texto assim como qualquer aplicação escrita para ler esse mesmo texto.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Squadfury    0
Squadfury

Obrigado Happy, percebi a ideia... vou tentar adicionar a terminação, se não conseguir vou ter de pedir ao utilizador para escrever um nome do tipo .txt..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.