Если открывать файл, указав его полный путь в параметре запуска, открывается абсолютно любой файл, но если указывать путь к файлу после запуска программы, открываются только файлы, путь к которым не содержит кириллицу.
Привожу два примера кода и скрины:
Листинг 1 (работает с любыми кодировками):
int main (int argc, char *argv[])
{
if(argc!=2)
{
cout<<"Format: program.exe filepath"<<endl;
return 1;
}
cout<<"Path: "<<argv[1]<<endl;
ifstream input(argv[1], ios::binary | ios::in);
if(!input)
{
cout<<"Error"<<endl;
return 1;
}
char symbol;
while(!input.eof())
{
input.get(symbol);
if(!input.eof())cout<<symbol;
}
input.close();
Листинг 2 (только с латиницей):
char filename[200];
cout<<"File: ";
cin.getline(filename, sizeof filename);
cout<<"Path: "<<filename<<endl;
ifstream input(filename, ios::binary | ios::in);
if(!input)
{
cout<<"Error"<<endl;
return 1;
}
char symbol;
while(!input.eof())
{
input.get(symbol);
if(!input.eof())cout<<symbol;
}
input.close();