I am trying to write a program for Sudoku. The Sudoku runs well for my input file. But I want to make some changes that input the file in the compiler. It catches the error like no matching member function for call to 'open'. This is just part of my program because I think my problem is the I/O file. Any help is appreciated! Thanks you!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <string>
using namespace std;
int main()
{
char filename;
ifstream myfile;
//int row,column;
int choice;
cout << "Enter the desired sudoku 4 for (4x4) or 9 for (9x9) : \n";
cin >> choice;
if(choice == 9) {
    for(int row = 0; row < 9; row++) // iterating the loop to assign initial dummy values
    {
        for(int column = 0; column < 9; column++)
        {
            sudoku[row][column] = 0; // assigining zeros
        }
    }
    cout << "Enter the filename:" << endl;
    cin >> filename;
    myfile.open(filename); // opening the file mentioned
    cout << "The values in the file are :" << endl;
    if (myfile.is_open())
    {
        while (!myfile.eof())
        {
            for(int row = 0; row < 9; row++) // iterating the loope to get the values form the file
            {
                for(int column = 0; column < 9; column++)
                {
                    myfile >> sudoku[row][column]; // assigning the values to the grid
                    cout << sudoku[row][column] << endl; // printing the grid
                }
            }
        }
    }
    myfile.close(); // closing the file
    solvesudoku(0,0);//We start solving the sudoku.
}
else if(choice == 4) {
    for(int row = 0; row < 4; row++) // iterating the loop to assign initial dummy values
    {
        for(int column = 0; column < 4; column++)
        {
            sudoku1[row][column] = 0; // assigining zeros
        }
    }
    cout << "Enter the filename:" << endl;
    cin >> filename;
    myfile.open(filename); // opening the file mentioned
    cout << "The values in the file are :" << endl;
    if (myfile.is_open())
    {
        while (!myfile.eof())
        {
            for(int row = 0; row < 4; row++) // iterating the loope to get the values form the file
            {
                for(int column = 0; column < 4; column++)
                {
                    myfile >> sudoku1[row][column]; // assigning the values to the grid
                    cout << sudoku1[row][column] << endl; // printing the grid
                }
            }
        }
    }
    myfile.close(); // closing the file
    solsudoku(0,0);//We start solving the sudoku.
}
else {
    cout << "Invalid Choice..!!!";
 }
return 0;
}
 
     
    