Salve,
stò creando un programmino per copiare i valori di una lista in un file di testo e viceversa, però purtroppo nella compilazione del sorgente, l'editor mi restituisce precisamene 5 errori, di questo tipo:

codice:
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ios_base.h|790|error: 'std::ios_base::ios_base(const std::ios_base&)' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|47|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here |
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf|770|error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|78|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here |
C:\Users\Gaten\Desktop\listafile.cpp||In function 'int main()':|
C:\Users\Gaten\Desktop\listafile.cpp|45|note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)' first required here |
C:\Users\Gaten\Desktop\listafile.cpp|45|error:   initializing argument 2 of 'void CopyListInFile(lista*, std::fstream)'|
||=== Build finished: 5 errors, 0 warnings ===|
Ecco il sorgente:

codice:
#include<iostream>
#include<fstream>


using namespace std;


/* creo la struttura della lista */
struct nodo {
	int value;
	nodo *link;
};

typedef struct nodo lista;
/* end */


/* prototipi delle functions */
bool list_is_empty(lista *head);
lista Insert(lista *&head, int elemento);
void CopyListInFile(lista *head, fstream FILE);
//void CopyFromFileInList(lista *&head, fstream FILE);


/* entry point */
int main()
{
	char choise;
	int elemento, scelta;
	lista *head=NULL;
	fstream FILE;
	FILE.open ("test.txt");

	/* riempio la lista con valori interi */
	cout<<"Inserisci i valori nella lista:"<<endl;
	do {
		cout<<"Inserisci l'elemento:"<<endl;
		cin>>elemento;
		Insert(head, elemento);
		cout<<"Vuoi continuare ad inserire elementi?"<<endl;
		cin>>choise;
	} while (choise == 's' || choise == 'S');
	/* end Insert */

	CopyListInFile(head, FILE);
	/*switch (scelta){
		case 1: // Copio la lista nel FILE
		break;

		case 2: // Copio i valori dal FILE in lista
		break;
	}*/
}
/* end main */


/* function list_is_empty */
bool list_is_empty(lista *head){
	if (head == NULL)
		return true;
	else
		return false;
}
/* end list_is_empty */


/* function Insert */
lista Insert(lista *&head, int elemento){

	//alloco dinamicamente memoria per il nuovo nodo
	lista *new_node=new lista;

	new_node->value=elemento;
	new_node->link=NULL;

	//se la lista è vuota, inserisco il primo elemento
	if (list_is_empty(head)){
		head=new_node;
	}else{

	//altrimenti dichiaro un puntatore temp. per inizializ.la testa
		lista *temp;
		temp=head;

		//scorro la lista fino ad arrivare a NULL
		while (temp != NULL){
			temp=temp->link;
		}
		//collego il nuovo nodo alla fine della lista
		temp->link=new_node;
	}
}
/* end Insert */


/* function CopyListInFile */
void CopyListInFile(lista *head, fstream FILE){

	/* SCOPO:
	 * Copiare il contenuto della lista all'interno del file */
	cout<<endl<<"Scrittura in corso..."<<endl;
	while(head != NULL){ // scorro la lista fino all'ultimo elemento
		FILE<<head->value<<endl;
	}

	/* chiudo il file */
	FILE.close();
	cout<<endl<<"Scrittura avvenuta con successo!";
}
/* end CopyLitInFile */