Нужно ввести строку любого размера, нашел способ:
string line;
getline(cin,line);
нужно преобразовать все в wchar_t, накалякал:
wchar_t *getString() {
string line;
getline(cin,line);
int j=0; // Счетчик символов в result
wchar_t *result=new wchar_t [line.length()];
for(register int i=0; line[i]; i++) {
if(line[i]&0b10000000) {
result[j]=((0b100000000*((unsigned char)line[i]))|((unsigned char)line[i+1]));
i++;
j++;
}
else {
result[j]=((0b11000000|((unsigned char)line[i]>>6))*0b100000000)|(0b10000000|(((unsigned char)line[i])&0b00111111));
j++;
}
}
return result;
}
числовое значение такое-же, но в терминал выводятся вопросы. во-первых нужно разобраться с преобразованием, во-вторых, хорошо было бы найти способ ввода строки минуя string. пробовал fgetws и распределить по блокам, но fgetws считывает из введенной визуально строки, а не поток с клавиатуры