Problema con libreria iostream/fstream

di il
2 risposte

Problema con libreria iostream/fstream

Ciao a tutti!
Io sto scrivendo un programma che faccia fare dei sudoku, ho scritto una parte ma mi da degli errori sulle librerie iostream e fstream e mi apre una pagina proprio sulla libreria sulla riga degli errori. Io non capisco un tubo di quello che c'è scritto e non riesco a capire come posso risolvere il problema.
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>

using namespace std;

void seleziona (fstream, fstream, fstream, int [][9]);
void stampa (int [][9]);

int main()
{
char difficolta;
cout<<"Scegli la difficolta' (facile=f, media=m, difficile=d): ";
cin>>difficolta;
while (difficolta!='f' || difficolta!='F' || difficolta!='m' || difficolta!='M' || difficolta!='d' || difficolta!='D'){
    cout<<"Sbagliato, riprova. Scegli la difficolta' (facile, media, difficile): ";
    cin>>difficolta;
}
int mat [9][9];
fstream facile1, facile2, facile3, medio1, medio2, medio3, difficile1, difficile2, difficile3;
switch (difficolta){
case 'f':
case 'F':
    {facile1.open("facile1.txt");
    facile2.open("facile2.txt");
    facile3.open("facile3.txt");
    seleziona (facile1, facile2, facile3, mat);
    facile1.close();
    facile2.close();
    facile3.close();}
case 'm':
case 'M':
    {medio1.open("medio1.txt");
    medio2.open("medio2.txt");
    medio3.open("medio3.txt");
    seleziona (medio1, medio2, medio3, mat);
    medio1.close();
    medio2.close();
    medio3.close();}
case 'd':
case 'D':
    {difficile1.open("difficile1.txt");
    difficile2.open("difficile2.txt");
    difficile3.open("difficile3.txt");
    seleziona (difficile1, difficile2, difficile3, mat);
    difficile1.close();
    difficile2.close();
    difficile3.close();}
}

}

void seleziona (fstream sud1, fstream sud2, fstream sud3, int mat[][9]){
int scelta;
srand(time(NULL));
scelta=(rand()%3);
switch (scelta){
case 1:
    {for (int i=0; i<9; i++){
for (int j=0; j<9; j++){
sud1>>mat[i][j];
}}}
case 2:
    {for (int i=0; i<9; i++){
for (int j=0; j<9; j++){
sud2>>mat[i][j];
}}}
case 3:
    {for (int i=0; i<9; i++){
for (int j=0; j<9; j++){
sud3>>mat[i][j];
}}}
}
stampa (mat);
}

void stampa (int mat [][9]){
int cont=0, cont1=0;
cout<<endl;
for (int i=0; i<9; i++){
    cont++;
    cout<<" | ";
for (int j=0; j<9; j++){
        cont1++;
    if (mat[i][j]==0){
        cout<<"-"<<" |";
    }
else{
cout<<mat[i][j]<<" |";}
if (cont1%3==0){
    cout<<"|";
}
cout<<" ";
}
if (i==8){
    cout<<endl;
}
else{
if (cont%3==0)
    cout<<endl<<" ________________________________________";
cout<<endl<<" ________________________________________"<<endl<<" |   |   |   ||   |   |   ||   |   |   ||"<<endl;
}
}
}
Non so se può essere utile, ma gli errori sono:
error: 'std::ios_base::ios_base(const std::ios_base&)' is private|
error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const __streambuf_type&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_streambuf<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]' is private|

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte