Jump to content

Ler e manipular Ficheiros .txt em C++


Leinad96

Recommended Posts

neste codigo abaixo referido quero abrir o ficheiro carros.txt no caso 5 da switch , mas nao sei ...

#include
#include
#include
#include

void main()
{
char opc;
char menu();
int c;

char *nome = "carros.txt";

opc= menu();
switch(opc)
{
case '1' : printf("\nlol\n\n");
break;
case '2' : printf("\nlol\n\n");
break;
case '3' : printf("\lol 3\n\n");
break;
case '4' : printf("\lol\n\n");
break;
case '5' :
break;
case '6' :
break;
}
}



char menu();
{
char o ;

printf("\n\t\t ________________________________");
printf("\n\t\t | |");
printf("\n\t\t | Adicionar carros [1] |");
printf("\n\t\t | Retirar carros [2] |");
printf("\n\t\t | Pesquisar carros [3] |");
printf("\n\t\t | Pesquisar Lugar [4] |");
printf("\n\t\t | Ver dados [5] |");
printf("\n\t\t | Sair [6] |");
printf("\n\t\t |________________________________|");
do
{
printf("\n\n\n\t\t\tQual a opcao ?\t\t");
scanf("%c",&o);
} while (o<'1'||o>'6');

return o ;
}

*no caso que referi e para mostrar o ficheiro todo no programa

,ou seja, quando escolhem o caso 5 mostrar o ficheiro todo.

Obrigado

Link to post
Share on other sites

neste codigo abaixo referido quero abrir o ficheiro carros.txt no caso 5 da switch , mas nao sei ...

#include
#include
#include
#include

void main()
{
char opc;
char menu();
int c;

char *nome = "carros.txt";

opc= menu();
switch(opc)
{
case '1' : printf("\nlol\n\n");
break;
case '2' : printf("\nlol\n\n");
break;
case '3' : printf("\lol 3\n\n");
break;
case '4' : printf("\lol\n\n");
break;
case '5' :
break;
case '6' :
break;
}
}



char menu();
{
char o ;

printf("\n\t\t ________________________________");
printf("\n\t\t | |");
printf("\n\t\t | Adicionar carros [1] |");
printf("\n\t\t | Retirar carros [2] |");
printf("\n\t\t | Pesquisar carros [3] |");
printf("\n\t\t | Pesquisar Lugar [4] |");
printf("\n\t\t | Ver dados [5] |");
printf("\n\t\t | Sair [6] |");
printf("\n\t\t |________________________________|");
do
{
printf("\n\n\n\t\t\tQual a opcao ?\t\t");
scanf("%c",&o);
} while (o<'1'||o>'6');

return o ;
}

*no caso que referi e para mostrar o ficheiro todo no programa

,ou seja, quando escolhem o caso 5 mostrar o ficheiro todo.

Obrigado

Pode não ser a solução mais viável, mas como não sei o que pretendes, vou-te dar uma lógica básica para perceberes:

case 5:
loadFicheiro();
break;
...
//Não te esqueças de declarar a função no inicio do ficheiro
//Esta função serve para fazer o load do conteudo que está no ficheiro.txt
//Caso queiras Escrever para o ficheiro usa a sugestão que te foi dada pelo nelsonnr
void loadFicheiro()
{
std::ifstream ficheiro;
ficheiro.open("ficheiro.txt");
// Ver se existe erros
if (ficheiro.fail()) {
 std::cout << "Falhou o carregamento do ficheiro " + ficheiro + "\n";
}
std::string tmp;
std::vector<std::string> conteudoFicheiro;
//Lê o conteudo que está no ficheiro e passa tudo para o vector com a ajuda da string tmp
while (std::getline(ficheiro, tmp)) {
 conteudoFicheiro.emplace_back(tmp);
}

//Lê o tamanho do vector e faz cout de todo o conteudo que nele contem para a consola
for (int i = 0; i < conteudoFicheiro.size(); i++){
 std::cout << conteudoFicheiro[i] << "\n";
}
}

Não te esqueças de fazer o include

#include<string>

#include<fstream>

#include<iostream>

#include<vector>

Espero ter ajudado,

Abraço.

Edited by apocsantos
Link to post
Share on other sites


void ler_dadosInicio()
{
    ifstream ficheiro;
    ficheiro.open("ficheiro.txt");

    if (ficheiro.fail()) 
    {
         cout << "Falhou o carregamento do ficheiro " + ficheiro + "\n";
    }
    string tmp;
    vector<dados>&vt;
    
    while (    getline(ficheiro, tmp)) 
    {
         vt.emplace_back(tmp);
    }                            
    if (ficheiro.is_open())
    {
        while ( getline (ficheiro,dados) )
        {
                cout << dados << endl;
           }
           ficheiro.close();
    }
      else cout << "IMPOSSÍVEL ABRIR FICHEIRO";    
}

 

A aplicação deverá ler os dados do ficheiro quando é iniciada (se o ficheiro existir) e colocar os mesmos na estrutura de dados;
Estou com uma dificuldade na última parte, alguém consegue ajudar-me.

sfv?

Link to post
Share on other sites
6 minutos atrás, Erik disse:

void ler_dadosInicio()
{
    ifstream ficheiro;
    ficheiro.open("ficheiro.txt");

    if (ficheiro.fail()) 
    {
         cout << "Falhou o carregamento do ficheiro " + ficheiro + "\n";
    }
    string tmp;
    vector<dados>&vt;
    
    while (    getline(ficheiro, tmp)) 
    {
         vt.emplace_back(tmp);
    }                            
    if (ficheiro.is_open())
    {
        while ( getline (ficheiro,dados) )
        {
                cout << dados << endl;
           }
           ficheiro.close();
    }
      else cout << "IMPOSSÍVEL ABRIR FICHEIRO";    
}

 

A aplicação deverá ler os dados do ficheiro quando é iniciada (se o ficheiro existir) e colocar os mesmos na estrutura de dados;
Estou com uma dificuldade na última parte, alguém consegue ajudar-me.

sfv?

Spoiler

 

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.