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

ler ficheiro c++

Discussão em 'Programação' iniciada por ser eu, 26 de Novembro de 2008. (Respostas: 4; Visualizações: 1406)

  1. tou com dificuldades em ler um ficheiro .txt em c++.

    alimentos
    maça(fruta),banana(fruta),couve(legume)
    carros
    a3(audi),astra(opel)

    como faço (em c++) um progama para ler do ficheiro '.txt' todas as palavras do ficheiro pela ordem em que estão e passa-las para variaveis.:(

    por exemplo:
    alimentos -> isto lido do fich
    maça
    fruta
    banana
    fruta
    couve
    legume
    carros
    ....

    sei que tenho de fazer uma especie de split mas nao sei como fazer em c++

    alguem me pode dizer como é o codigo, pff


    cumps
     
  2. OubeLa

    OubeLa Power Member

    Podes usar o istringstream para separar as palavras, se estiverem todas separadas por espaços. se precisares de numa palavra dividi-la em várias podes usar o find e o substr.

    Por exemplo, se o ficheiro for
    maça fruta
    pera xpto


    Para encontrar cada uma destas palavras basta mesmo usar o istringstream.

    Se for:
    maça(fruta)
    pera(xpto)

    Já tens que encontrar os "(" e ")", usando o find, e fazer substrings (usando o substr).

    Estou a presumir que já sabes como abrir o ficheiro, claro.
     
  3. sim sei abrir so nao sei é usar esses metodos que referis.te :(

    o ficheiro ta da forma que esta escrito em cima

    nao podes dar-me um exemplo sff
     
  4. OubeLa

    OubeLa Power Member

    Neste momento não tenho oportunidade de escrever código e testar, mas vou tentar dar uma ajuda:

    Find: http://www.cplusplus.com/reference/string/string/find.html
    substr: http://www.cplusplus.com/reference/string/string/substr.html

    Se tu souberes a ordem das linhas, é muito simples.

    Na primeira linha procuras o "(", fazendo algo tipo isto

    Código:
    size_t abre_parentises = linha.find("(");
    a variavel aber_parentises fica com a posição onde a string("(") foi encontrada.

    Depois, podes fazer uma substring desde o ínicio até ao "(", fazendo

    Código:
    string str = linha.substr(0, abre_parentises);
    Isto faz-te uma substring desde o inicio até ao parentises.

    Depois, para os outros fazes de forma semelhante. Podes agora retirar a parte da string que já processaste, por exemplo.

    Código:
    linha = linha.substr(abre_parentises+1, linha.size());
    (atenção, não tenho a certeza se é linha.size() - 1, mas é uma questão de ires testando).

    Depois voltas a fazer o find e assim sucessivamente. Espero ter ajudado.
     
  5. JomarC

    JomarC Power Member

    LOL

    Só agora é que vais começar a fazer isso? :) (ISEP)

    Seque o que o SIR diz, a mim ajudou-me muito :)

    Cumps
     

Partilhar esta Página