C++ leitura de ficheiros

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:

Código:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;



int main(){

char teste[500];

ifstream leitura("teste.txt"); //Abre o ficheiro para leitura

leitura.read(teste, 500); // copia o conteúdo todo do ficheiro para o char teste
// suponho que não estou a usar a função correcta aqui
cout << teste;


}
Cumps:D
 
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:
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.



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

cumps:D
 
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
 
Back
Topo