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|