Я довольно долго ломал голову, этот код работал нормально, когда я сначала использовал cmd, чтобы зайти в папку project \ debug, а затем запустить программу там. Затем я добавил if (in) и еще одну часть, после чего он начал выдавать мне ошибки «debug assertion failed» mbstowcs.c
Выражение s! = NULL
Это просто не имеет никакого смысла для меня ..
Я использовал эту команду в cmd: prog.exe test.txt nuther.txt
Оба файла существуют в папке отладки и в главной папке проекта.
Есть идеи?
int main(int argc, char **argv)
{
parse_opts(argc, argv); //parse the arguments
return 0;
}
void parse_opts(int argc, char **argv)
{
string compl_out;
if( argc > 1 )
{
for( int i = 1; i < argc; i++ )
{
if( argv[i][0] = '>' )
{
ofstream out_file(argv[i+1]);
out_file << compl_out;
out_file.close();
break;
}
ifstream in(argv[i]);
string buff;
if(in)
{
while(getline( in, buff ))
cout << buff << endl;
compl_out.append(buff);
}
else
{
cout << "Can't open file: " << argv[i]
<< ", file doesn't exist or is locked in use. " << endl;
}
}
}
else
{
usage();
}
}