Здравствуйте! Появилась надобность написать программу на С++, шифрующую русские строки, считываемые из файла с кодировкой UTF-8. Использую STL wstring. В случае с обычным вводом с экрана всё работало бы корректно: я просто менял бы номера символов на K единиц и получал бы другие символы. Проблема состоит в том, что при данном коде:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
wfstream f("in.txt", fstream::in);
wstring tmp;
f >> tmp;
wcout << tmp.size() << ": " << tmp << endl;
}
строка оказывается пустой. Появлялась идея считать в обычный string, а затем преобразовать в wstring - функция wstring_convert не определена. Код компилирую на g++ 4.8 в ОС Linux Mint 17.
UPD: хочется добавить, что при таком коде строка f >> tmp
выбрасывает исключение:
terminate called after throwing an instance of 'std::ios_base::failure'
basic_filebuf::underflow invalid byte sequence in file
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Здравствуйте! Подскажите, пожалуйста, как дизассемблировать код в codeblocks?
Неужели short int хватает чтобы записать такой длинный адрес переменной? Насколько мне известно, адреса должны выглядеть примерно так 0x7ffc079b67aeНеужели...
Написать функцию, которая возвращает сумму n чисел ФибоначчиЧисло n принимается в качестве аргумента, нужно без доп