Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-12-2013, 14:18   #1
Mohegan
Junior Member
 
Iscritto dal: Dec 2013
Messaggi: 3
Problema salvataggio e rilettura da file

Salve ragazzi, sto lavorando ad un progetto per il corso di programmazione e progettazione software all'università, si tratta di un classificatore di documenti con algoritmo knn, ho una classe documento definita così:

Codice:
class document
{  
private:  
  //Contain the name of the ASCII file.
  std::string name_file;  
  //Contain the name of the class, like SPORT, HARDWARE, MOVIES and so on.
  std::string name_class;  
  //Will be our bag of words. 
  std::map<std::string,int> bag;  
  //The number of different words in the document, also bag.size()
  int size_doc;  
public:  
  //Constructors:
  document(void);  
  document(const char* , const char*);  
  //Public methods:
  void LoadFile(const char*, const char*);  
  void PrintBag(void) const;  
  void Clear(void);  
  //Setters
  //Set name_file
  void SetName(std::string);  
  //Set name_class
  void SetClass(const std::string);  
  //Set size_doc
  void SetSize(const int);  
  //Getters:  
  //Return name_file
  std::string GetName(void) const;  
  //Return name_class
  std::string GetClass(void) const;  
  //Return bag
  std::map<std::string,int> GetBag(void) const;  
  //Return size_doc
  int GetSize(void) const;  
};
e una classe training set definità così:

Codice:
class TrainingSet
{
private:  
  //Our TrainingSet
  std::vector<document> t_set;  
  //Name of TrainingSet
  std::string name_ts;  
  //Number of documents in the t_set, also t_set.size()
  int size_ts;  
public:
   //Default constructor
  TrainingSet(void);  
  //Constructs the TrainingSet with the list of documents
  TrainingSet(std::vector<document>);  
  //Return the name of training set
  std::string GetName(void) const;  
  //The same as second constructor, must be used after default constructor
  void CreateTrainingSet(std::vector<document>);  
  //Update the TrainingSet with one more document
  //void UpdateTrainingSet(document*);  
  //Load existing TrainingSet from file
  void LoadTrainingSet(const char *);  
  //Print all the documents names in the training set
  void DocList(void) const;  
};
i training set raccolgono documenti, voglio però essere in grado di salvare su file il tutto, scrivendoci nell'ordine:

NOME TRAINING SET
NUMERO DOCUMENTI NEL TRAINING SET
NOME DOC_1
GRANDEZZA DOC_1
CLASSE DOC_1
WORD1 OCC1
WORD2 OCC2
.
.
.
NOME DOC_N
GRANDEZZA DOC_N
CLASSE DOC_N
WORD1 OCC1
WORD2 OCC2


per ricaricare il training set in memoria:
LEGGO STRING (così conosco il nome del training set)
LEGGO INT (così so quanti documenti ci sono nel file)
per ogni documento:
LEGGO STRING (nome doc)
LEGGO INT (n° parole doc)
LEGGO STRING (classe doc)
e poi per ogni parola nel doc (il secondo intero letto) leggo creando una mappa, e quindi il documento, STRING e poi INT

il problema è che nel mio documento di prova ci sono 175 parole differenti e quando scrivo la mappa del documento in un file lui scrive solo 91 parole, i cicli per la scrittura vengono fatti con gli iteratori standard del c++, la parte di codice che scrive è questa:

Codice:
stream_t<<name_ts;  
  stream_t<<" ";  
  stream_t<<size_ts;  
  stream_t<<" ";  
  for(index=0x00;index<size_ts;index++)
  {    
    stream_t<<docs[index].GetName();    
    stream_t<<" ";    
    stream_t<<docs[index].GetSize();    
    stream_t<<" ";        
    stream_t<<docs[index].GetClass();    
    stream_t<<" ";    
    ToStream(stream_t,docs[index]);   
  }
Date per scontato che lo stream_t apre il file correttamente e che la funzione ToStream è questa:

Codice:
void ToStream(std::fstream& stream, const document& doc)
{  
  std::map<std::string,int>::const_iterator iter;  
  iter=doc.GetBag().begin();  
  while(iter!=doc.GetBag().end())
  {   
    stream<<iter->first;    
    stream<<" ";    
    stream<<iter->second;    
    stream<<" ";    
    iter++;    
  }  
}
Grazie in anticipo per l'aiuto

Ultima modifica di Mohegan : 23-12-2013 alle 14:21. Motivo: scrivo il corpo della funzione ToStream
Mohegan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Con l'Event Horizon Telescope si sta stu...
Milano Cortina 2026, dietro le quinte de...
IA e automazione: le armi per industrial...
SpaceX sta per rimuovere il braccio di a...
Sony a ISE 2026: display, soluzioni imme...
Sony punta sull'IA: brevettati i podcast...
Logitech G Astro A50, le cuffie gaming d...
Lenovo a ISE 2026: smart collaboration, ...
GeForce RTX 5000 SUPER cancellate e RTX ...
Substack conferma violazione: esposti da...
L'IA costa caro. Oracle punta a raccogli...
OpenAI lancia Frontier: il cervello cent...
Questo robot aspirapolvere lava sempre c...
Il PC non si avvia? ASRock invita a cont...
8 smartphone Android in forte sconto su ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v