1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

C++ leitura de ficheiros

Discussão em 'Programação' iniciada por migp999, 2 de Junho de 2008. (Respostas: 3; Visualizações: 1381)

  1. migp999

    migp999 Power Member

    Boas...
    É assim eu estou a fazer um programa , C ++, e estou a precisar de ler um ficheiro .txt, que contem várias frases em várias linhas, palavra a palavra (preferência) ou de linha a linha e que me guarde numa variável (para que depois a possa guardar noutro sitio ou manipular as palavras)
    Este é o código que tenho mas está-me a guardar o ficheiro todo num char:

    Cumps:D
     
  2. OubeLa

    OubeLa Power Member

    Código:
    #include <fstream>
    #include <string>
    
    //...
    
    string linha;
        ifstream ficheiro;
        ficheiro.open("Login.txt");
    
        if (ficheiro.is_open())
        {
            while (! ficheiro.eof())
            {
                getline(ficheiro, linha);
    
    //procura estes caracteres no ficheiro
                int hifen = linha.find("-");
                int barra = linha.find("|");
    
                string user = linha.substr(0, hifen);
                string resto = linha.substr(++hifen, linha.size());
                string pass = resto.substr(0, linha.size() - barra - 1);
                string nome = linha.substr(++barra, linha.size());
    
             //....
            }
            ficheiro.close(); //fecha o ficheiro
        }
    }
    Tinha coisa num ficheiro separadas por | e por -, e daquela forma separava as palavras. Guardar palavra a palavra (numa frase, com espaços) também não deve ser muito complicado.
     
    Última edição: 2 de Junho de 2008
  3. migp999

    migp999 Power Member



    Obrigado por isto...já agora há alguma maneira de em vez de usar strings usar char?

    cumps:D
     
  4. migp999

    migp999 Power Member

    Afinal estou-me a desenrascar com strings:007:

    Já agora como faço para detectar um linha vazia?
    será que se fizer:

    if( linha.size() == 0)

    serve?

    Cumps:D
     

Partilhar esta Página