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 */