Программа не может перевести значение переменной типа string в тип char. В значении только одна буква, и по идее всё должно работать.
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ifstream cin("input.txt");
ofstream cout("output.txt");
int a=0,b=0;
char l[8],l2[8],l1[8];
string x[8];
for(int i=0;i<8;i++){
cin>>l[i];
x[i]=l[i];
}
for(int i=0;i<8;i++){
if(x[i]=="1"||x[i]=="2"||x[i]=="3"||x[i]=="4"||x[i]=="5"||x[i]=="6"||x[i]=="7"||x[i]=="8"||x[i]=="9"||x[i]=="0"){l1[i]=strToChar(x[i]);
a=a+1;}
else{
l2[i]=strToChar(x[i]);
b=b+1;
}
}
for(int i=0;i<a;i++){
cout<<l1[i];
}
cout<<"|";
for(int i=0;i<b;i++){
cout<<l2[i];
}
}
Идея программы в том, что в файле input.txt введена строка ad2e57b6, а в файл output.t5xt надо вывести 2576adeb, то есть перенести цифры в начало.