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

c++ ler txt

Discussão em 'Programação' iniciada por jahred, 11 de Maio de 2007. (Respostas: 4; Visualizações: 4043)

  1. jahred

    jahred Power Member

    Ora boas!

    tou a precisar de fazer o seguinte em c++:

    tendo o ficheiro de texto sobre pilhas, com o seguinte formato:

    Sony 200; Philips 100; Panasonic 120; Duracell 500

    queria saber como posso dividir os dados de maneira a tratá-los! abrir o ficheiro e talz já sei, já tenho umas luzes sobre ficheiros
    , agora dividir tudo por tipo e depois tratar os dados é que já é mais complicado!

    queria algo do género
    string nome;
    int quant_vendida;

    alguém me consegue ajudar?
    cumps
     
    Última edição: 11 de Maio de 2007
  2. LumpyNutz

    LumpyNutz Power Member

    Fazes

    FILE *fc=fopen(ficheiro_nome,"r");
    int qt_vendida;
    char nome[20];
    fscanf(ficheiro_nome,%s %d,nome,qt_vendida);


    assim ficas com o primeiro nome e o primeiro numero nessas variaveis, para o resto o procedimento é o mesmo tens é que parar a leitura quando chegares a EOF (end of file).
     
  3. jahred

    jahred Power Member

    pois, mas eu queria mesmo era em c++... =S pelo menos tou a tentar com o dev-c++ e dá-me uns erros nesse código...

    e mesmo assim acho que faltam as ceninhas apontadas a vermelho, não? =S: fscanf(ficheiro_nome,"%s %d",&nome,&qt_vendida);
     
  4. Cesaria

    Cesaria Power Member

    Viva tens 66,6% de razão :) a leitura da string não leva o &...No entanto convinha ler tb o caracter ";"..Qt ao não conseguires compilar será por nao teres incluido o stdio.h..
    Se quiseres mm em C++ uma das maneiras poderá ser algo do tipo:
    Código:
    #include <iostream>
    #include <fstream>
    using namespace std;
    int main() {
     
    int x;
    char str[20];
    char car;
    ifstream inFile;
    inFile.open("test.txt");
     
    if (!inFile) {
       cout << "Erro ao abrir o ficheiro";
       exit(1); 
    }
     
    while(inFile >>str>>x>>car)
    {
       cout<<"Leitura:"<<str<<" "<<x<<endl;
       inFile.clear();
    }
     
    inFile.close(); 
    return 0;
    }
    
    PS:Reparei agora que na ultima leitura não tens o ";", bem se não levar isto já nao funcemina e terás de fazer umas modificações, tal como fazer a leitura do car dentro do ciclo while...
     
    Última edição: 11 de Maio de 2007
  5. jahred

    jahred Power Member

    cesaria, podes-me explicar por favor o que faz: while(inFile >>str>>x>>car) ? obrigado desde já pela ajuda
     

Partilhar esta Página