[C++] Problema lettura file ad accesso diretto.

di il
19 risposte

19 Risposte - Pagina 2

  • Re: [C++] Problema lettura file ad accesso diretto.

    Il mio dubbio è che prima leggo carattere per carattere fino allo \n precedente la riga che voglio salvare, poi faccio una lettura formattata della riga. Inoltre sono dubbioso anche per quanto riguarda la lettura carattere per carattere . Domani mattina lo provo subito
  • Re: [C++] Problema lettura file ad accesso diretto.

    Domanda: E' possibile mettere dei deliminatori di campo tipo un punto e virgola? Se si leggi tutta la stringa con std::getline e fai un parser sulla linea con std::stringstream
  • Re: [C++] Problema lettura file ad accesso diretto.

    I delimitatori sono gli spazi
  • Re: [C++] Problema lettura file ad accesso diretto.

    Non funziona. Mi stampa a video una sequaneza di numeri del tipo: 123437432852346384342348797

    Questo è il codice che ho scritto:
    
    /////////////main.cpp////////////////////////
    
    #include <iostream>
    #include "FileManaging.h"
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
        FileManaging fileObj;
        int indiceRiga;
        char readFileName[]="Mazzo Principale.txt";
    
        cin >> indiceRiga;
        if(fileObj.openFile(readFileName)==1) return 2;
    
        fileObj.readFile(indiceRiga);
    
        cout<<fileObj.getID()<<fileObj.getNome()<<fileObj.getDenaro()<<fileObj.getAbilita()<<fileObj.getAllenabile()<<fileObj.getValore()<<endl;
    
        fileObj.closeFile();
    
        return 0;
    ///////////////////FileManaging.h///////////////////
    #include <fstream>
    #include <iostream>
    
    
    using namespace std;
    class FileManaging
    {
       private:
           ifstream inFile;
           int id;
           int denaro;
           int abilita;
           int valore;
           string nome;
            string allenabile;
       public:
           int openFile(char file[]);
           void closeFile();
           int testEof();
           void readFile(int index);
           int getID();
           int getDenaro();
           int getAbilita();
           int getValore();
           string getNome();
           string getAllenabile();
    
    };
    
    
    //////////////////FileManaging.cpp///////////////////////
    using namespace std;
    
    int FileManaging::openFile(char readFile[])
    {
        inFile.open(readFile, ios::in);
        if(!inFile){
            cout<<"File cannot be opend"<<endl;
            return 1;
        }
        return 0;
    }
    
    
    void FileManaging::closeFile()
    {
        inFile.close();
    }
    
    int FileManaging::testEof()
    {
        return inFile.eof();
    }
    
    void FileManaging::readFile(int index_line)
    {
        int occorrenze_newline;
        char carattere;
    
        while(!testEof() && occorrenze_newline < index_line-1)
        {
            carattere = inFile.get();
            if(carattere == '\n')
                occorrenze_newline++;
    
        }
    
        inFile >> id >> nome >> denaro >> abilita >> allenabile >> valore;
        inFile.seekg(0);
    }
    
    int FileManaging::getID()
    {
        return id;
    }
    int FileManaging::getDenaro()
    {
        return denaro;
    }
    int FileManaging::getAbilita()
    {
        return abilita;
    }
    int FileManaging::getValore()
    {
        return valore;
    }
    string FileManaging::getNome()
    {
        return nome;
    }
    string FileManaging::getAllenabile()
    {
        return allenabile;
    }
    
    
    
    

    ////////////////Esempio del file.txt////////////

    id nome forza denaro abilita allenabile valore
    1 Topolino 1 5 3 NO 9
    2 Paperone 1 100 6 NO 7
  • Re: [C++] Problema lettura file ad accesso diretto.

    OK funziona, c'erano alcuni errorini
Devi accedere o registrarti per scrivere nel forum
19 risposte