Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Подсчет символов UTF-8. Считывание пробельных символов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти заданное число членов ряда http://www.cyberforum.ru/cpp-beginners/thread1632614.html
Задача: Ввести вещественные числа x (-1≤x≤1) и натуральное число N >0. Найти N первых членов ряда. Нужно чтобы начиналось таким образом и использовать нужно оператор while и не...
C++ Как проще всего работать с Big-Endian C++ ? С++. Как проще всего работать с Big-Endian, используя стандартные операции ? http://www.cyberforum.ru/cpp-beginners/thread1632605.html
C++ Сортировка массива структур (файловый ввод/вывод)
Здравствуйте помогите пожалуйста разобраться с программой которая записывать ФИО в файл проблема в fwrite(&Stud,sizeof(TStudent),1,Fs); ошибка Unit1.cpp(48): W8060 Possibly incorrect assignment...
C++ Локальные переменные или прямое обращение к get-объекта класса?
Собственно, что лучше? Создавать локальные переменные и хранить там значения, полученные из экземпляра или напрямую обращаться к полям объекта? Например: void Array::operator +(Array value) {...
C++ Правильное использование throw и abort http://www.cyberforum.ru/cpp-beginners/thread1632578.html
Всем привет, тут такой вопрос возник: когда я хочу прервать программу, я могу воспользоваться exit(0), но он перед завершением должен вызвать деструкторы нелокальных переменных, если я их вызывать...
C++ Перемещение каретки мыши по координатам в Linux Стоит Eclipse C/C++. Собираюсь сделать игру типа Adom, Dwarf Fortress, но мешает одно, не знаю как переместить каретку в определенные координаты консоли. Решение типа: void goto( short x, short y... подробнее

Показать сообщение отдельно
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1

Подсчет символов UTF-8. Считывание пробельных символов - C++

06.01.2016, 13:43. Просмотров 298. Ответов 2
Метки (Все метки)

Написал программу считывания файла с кодировкой UTF-8. Но она не считывает пробельные символы. Программа получает на вход файл из стандартного потока ввода.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
 
using namespace std;
 
int getBytes(unsigned char c) {
    if(c >= 252) return 6;
    else if(c >= 248) return 5;
    else if(c >= 240) return 4;
    else if(c >= 224) return 3;
    else if(c >= 192) return 2;
    else return 1;
}
 
int main() {
    unsigned char a;
    
    /*
    
    ------------------UTF-8-----------------
    0xxxxxxx - 1 байт - (>= 000) - <000-191>
    110xxxxx - 2 байт - (>= 192) - <192-223>
    1110xxxx - 3 байт - (>= 224) - <224-239>
    11110xxx - 4 байт - (>= 240) - <240-247>
    111110xx - 5 байт - (>= 248) - <248-251>
    1111110x - 6 байт - (>= 252) - <252-255>
    ----------------------------------------
    
    */
    
    int bytes = 0;
    int res = 0;
    
    while(cin >> a) {
        if(bytes == 0) {
            ++res;
        }
        
        if(bytes == 0) {
            bytes = getBytes(a);
        }
        
        cout << (int)a << " ";
        bytes--;
    }
    
    cout << res << "\n";
}
Добавлено через 1 час 23 минуты
Я справился, можно закрыть тему
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru