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;
}