Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    35

    C++ caricare più stringhe su file

    Sto cercando di creare un oggetto che contenga all'interno un inventario con i seguenti campi:
    NUMERO: che indica il numero del catalogo
    NOME: indica il nome dell'oggetto (che è formato anche da due o più nomi)
    altre cose...
    NOTE: che è una frase descrittiva dell'oggetto

    Come faccio quindi a caricare da INPUT una frase? E di conseguenza metterla su file?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Mi sa che hai fatto troppe domande ... devi proporre del codice scritto da te e fare una domanda su un particolare problema ...

    Per capirci ... hai già scritto la classe?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    35
    si, non ho scritto il codice perchè vorrei più sapere che tecnica usare... però ora ve lo posto

    ferramenta.h
    codice:
    #ifndef FERRAMENTA_H_
    #define FERRAMENTA_H_
    #include <iostream>
    #include <fstream>
    #include <cassert>
    #include <string>
    
    using namespace std;
    
    class Ferramenta{
    public:
    	void scriviFile();	//leggo da file
    	void scrivi();	//scrivi un record
    
    private:
    	int numero; //indica il numero nell'inventario
    	string NomeAttrezzo;
    	int quantita;
    	float costo;
    	string note;
    };
    
    typedef Ferramenta Catalogo[100]; //indica il numero nell'inventario
    
    #endif /* FERRAMENTA_H_ */

    ferramenta.cpp
    codice:
    #include "ferramenta.h"
    
    void Ferramenta::scriviFile(){	//scrivo su file
    	fstream f;
    	f.open("hardware.dat", ios::out);
    	if(!f){
    		cout<<"Non posso creare il file!!!\n";
    		assert(!f);
    	}else{
    		f<<"Numero: " <<numero <<endl;
    		f<<"NomeAttrezzo: " <<NomeAttrezzo <<endl;
    		f<<"Quantità: " <<quantita <<endl;
    		f<<"Costo: " <<costo <<endl;
    		f<<"Note: " <<note <<endl;
    	}
    
    	f.close();
    }
    
    void Ferramenta::scrivi(){	//scrivi un record
    	cout<<"Scrivi il record:\n";
    	cout<<"Numero: "; cin>>numero;
    	cout<<"NomeAttrezzo: "; cin>>NomeAttrezzo;
    	cout<<"Quantità: "; cin>>quantita;
    	cout<<"Costo: "; cin>>costo;
    	cout<<"Note: "; cin>>note;
    }
    main.cpp
    codice:
    #include "ferramenta.h"
    
    int main(){
    	Catalogo cat;	//dichiaro un catalogo di 100 posizioni
    
    
    	for (int i=0;i<2;i++){
    		cat[i].scrivi();
    		cat[i].scriviFile();
    	}
    
    	return 0;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dato il codice, di quale tecnica parli? Quale problema in particolare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    35
    Non so come poter scrivere in input una frase e salvarla in una variabile, in seguito la dovrei portare su file

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da AngeloV
    Non so come poter scrivere in input una frase e salvarla in una variabile
    Sono elementi di base di C/C++ ... come mai scrivi classi e non sai come fare un input da tastiera? E' come avere costruito una automobile e chiedere come si avvita un bullone ...

    Guarda la funzione

    gets
    http://www.cplusplus.com/reference/c...y/cstdio/gets/

    e usala.

    in seguito la dovrei portare su file
    Ma lo hai già scritto il codice !

    f.open("hardware.dat", ios:ut);

    ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    35
    Ho provato a utilizzare gets in due modi:

    1)

    nel main

    codice:
    string ciao;
    gets(ciao);
    cout<<ciao;
    tutto bene, mi dà tutta la stringa con spazi.

    2)Ho provato a metterlo nel codice della classe

    codice:
    cout<<"Nome Attrezzo: "; gets(NomeAttrezzo);
    cout<<"Quantita: "....
    quando eseguo, mi esce il cout dell'Attrezzo ma non mi fa inserire da input la stringa e passa subito all'inserimento dell'intero successivo

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    35
    ci sono riuscito

    codice:
    getline(cin,note,'\t');
    ho utilizzato la casse STRING e questo codice che fino al tasto TAB continua a leggere la stringa. Ora devo solo capire come prendere da file tale stringa

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dopo l'input del numero devi ripulire il buffer con

    cin.ignore();
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    35
    dato il mio file scritto così:

    codice:
    1
    NomeAttrezzo: 
    serve per
    Quantità: 
    2
    Costo: 
    2
    Note: 
    utile per
    come faccio a prendere le stringhe "serve per..." e "utile per.." supponeno che sono frasi??

    stavo provando a scrivere così...

    codice:
    void Ferramenta::leggiFile(){  //leggo da file
    	fstream f;
    	f.open("hardware.dat", ios::in);
    	if(!f){
    		cout<<"Non posso leggere il file!!!\n";
    		assert(!f);
    	}else{
    		string appoggio;
    
    		f>>numero;
    		f>>appoggio;
    		f.getline(NomeAttrezzo,256,'\n');
    	}
    
    	f.close();
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.