Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 11.07.2017
Сообщений: 3
1

Широкие символы и клавиша забой

23.07.2017, 11:10. Показов 1276. Ответов 2
Метки нет (Все метки)

добрый день
столкнулся с такой проблемой, ввожу строку , кириллицу в консольной тестовой програмке
если нажать клавишу забой то в итоге при выводе строки в файл или экран стирается тот символ который
необходимо стереть, а также последующий символ который вводится, вместо одного символа два.
Перебирал разные функции для работы с широкими символами, результат один.
В чем проблема? Функции для работы с широкими символами не умеют правильно обрабатывать
клавишу забой? Если не трудно, приведите правильный код , рабочий с широкими символами чтобы
клавиша забой стирала только 1, необходимый символ.
Спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2017, 11:10
Ответы с готовыми решениями:

Широкие символы wchar_t wstring не хотят принимать русские символы
Собственно вопрос в шапке, вот примеры: std::wstring str = L"блин комом"; и такое: wchar_t...

Широкие символы + Unicode
Доброго времени суток всем) На эту тему материала много, но он весь разрозненный и не полный....

Не получается вывести широкие символы
wchar_t *p = new wchar_t; p = L"Текст"; wcout << p << endl;

Широкие символы в Code Blocks
Code Blocks 13.12, mingw 4.7.1, почему не проходит компиляция такого кода? #include <iostream>...

2
984 / 729 / 233
Регистрация: 30.06.2015
Сообщений: 3,873
Записей в блоге: 37
23.07.2017, 11:58 2
Код покажи.
0
0 / 0 / 1
Регистрация: 11.07.2017
Сообщений: 3
23.07.2017, 13:02  [ТС] 3
Лучший ответ Сообщение было отмечено vlad22222 как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
#include <locale.h>
#include <sys/stat.h> 
#include <sys/types.h>
int main ()
{
    setlocale(LC_ALL, "utf8");
    FILE *f;
    wint_t ch;
    f = fopen("/storage/emulated/legacy/ccc", "wb");
 
    while ((ch = getwchar()) != L'\n')
        fputwc (ch, f);
    
    fflush(f);
    fclose (f);
return 0;
}
вот код
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2017, 13:02

cout и Unicode - как выводить широкие символы
Решил перевести свое консольное приложение на Unicode и столкнулся с такой проблемой: cout &lt;&lt;...

Составьте программу которая выводит символы нажатых клавиш до те пор, пока не нажата клавиша ENTER
Составьте программу которая выводит символы нажатых клавиш до те пор, пока не нажата клавиша ENTER....

Забой дополнительно удаляет пробел
Вопервых не нашёл версии Оффиса (где посмотреть?), предположим - 2013. Неудобство - когда забоем...

Задача: опрос клавиатуры. При нажатии любой клавиши должно появиться сообщение:"Нажата клавиша "(клавиша)"
Здравствуйте. Задача: опрос клавиатуры. При нажатии любой клавиши должно появиться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru