Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 11

VSCode не хочет принимать всю строку кирилицей

20.05.2018, 13:04. Показов 2718. Ответов 28

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня такая вот проблема. Не могу ввести и корректно обработать строку из 40-ка символов в VSCode да и других IDE. Если ввожу цифры или текст англ. раскладкой - всё ок. А как только ввожу предложение на русском (длинной 40 символов) оно принимает только 20, а в конце(иногда) выводит какой-то крокозяблик.
Листинг:
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
#include <iostream>
#include <string.h>
#include <stdio.h>
 
using namespace std;
 
struct NOTE
{
    char fio[40];
    char phone[15];
    int data[3];
} abonent;
 
void EnterData(int &);
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int flag(0);
    EnterData(flag); 
    getchar();
    return 0;
}
void EnterData(int &flag)
{
        cout << "\nВведите ФИО абонента: ";
        fgets(abonent.fio, 39, stdin);
        puts(abonent.fio);
        getchar();
}
Вот что получается при вводе кирилицы и при вводе буквами латинского алфавита.
Памагите, форумчане....
Миниатюры
VSCode не хочет принимать всю строку кирилицей   VSCode не хочет принимать всю строку кирилицей  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2018, 13:04
Ответы с готовыми решениями:

Элемент массива не хочет принимать значение
Здравствуйте, нужна помощь опытных кодеров. В чем проблема, я создал text : array of string и по кнопке должен выполнятся код ...

Компилятор не хочет принимать функцию dalay()/Sleep() и т.д
Доброго времени суток, компилятор не принимает функции delay() или Sleep(), таже он не принимает Beep(); в ошибке пишет delay was not...

Метод Зейделя. Не хочет принимать третий аргумент
Привет. Вот такое на данный момент записано: http://cs633626.vk.me/v633626350/1аbfb/A7v_i-PLDp0.jpg Не хочет принимать третий...

28
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 11
20.05.2018, 14:56  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Someone007 Посмотреть сообщение
Не думаю что проблема в VSCode. Это просто текстовый редактор. От него работа программы никак не зависит.
Скорее всего это какая-то особенность Linux или компилятора который вы используете.
Ну это же обычный g++..
0
 Аватар для NightSkyLark
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
20.05.2018, 14:59
Someone007, точно дело не в VS Code.
Открыл файл .cpp в Geany запустил и строки обрезаются . ...
0
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 11
20.05.2018, 15:01  [ТС]
Так что мне делать-то....
0
 Аватар для NightSkyLark
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
20.05.2018, 15:07
Насколько понял дело в компиляторе. Потому что проблем со строками в терминале нет. Хотя кто его...

Добавлено через 2 минуты
Цитата Сообщение от Komatosik Посмотреть сообщение
Так что мне делать-то....
Ну а если VS Code настроить на внутреннюю консоль ? Не внешний терминал а внутренний.
0
0 / 0 / 0
Регистрация: 20.05.2018
Сообщений: 11
20.05.2018, 15:08  [ТС]
Цитата Сообщение от NightSkyLark Посмотреть сообщение
Someone007, точно дело не в VS Code.
Открыл файл .cpp в Geany запустил и строки обрезаются . ...
Результат тот же. Обрезает, но не там где нужно...

Добавлено через 1 минуту
Цитата Сообщение от NightSkyLark Посмотреть сообщение
Насколько понял дело в компиляторе. Потому что проблем со строками в терминале нет. Хотя кто его...

Добавлено через 2 минуты

Ну а если VS Code настроить на внутреннюю консоль ? Не внешний терминал а внутренний.
Гоу попробуем, как это сделать??
0
 Аватар для NightSkyLark
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
20.05.2018, 15:12
По идее нужно вписать в launch.json "externalConsole": false,
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
20.05.2018, 15:14
Цитата Сообщение от Komatosik Посмотреть сообщение
Итак вопрос остаётся открытым..
Вам вы вроде бы всё пояснили.
Вот уже лет 10 как в Линуксах основная кодировка - utf-8.
Славянские буквы в ней кодируются двумя байтами (а вообще символы - от 1 до 6 байт).
Цитата Сообщение от Komatosik Посмотреть сообщение
как мне контролировать длинну ввода? Или при вводе ограничить кол-во вводимых символов можно??
Есть несколько вариантов.
1. Использовать широкие символы и строки (wchar, wstring). Там все символи кодируются одинаковым количетвом байт - в Линуксах - 4, в Венде - 2.
2. Остаться на utf-8 и использовать специальные библиотеки. Наиболее известная glib.
3. Изучить utf-8 и контролировать каждый символ вручную.
0
 Аватар для NightSkyLark
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
20.05.2018, 16:15
Мне вот только непонятно, в CLion нет никаких проблем с кодом ТС. вывод идет во внутреннюю консоль.
И на внешнем терминале тоже без проблем ( ну почти без проблем ). Это меня собственно и сбило с толку.
Миниатюры
VSCode не хочет принимать всю строку кирилицей  
0
 Аватар для NightSkyLark
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
20.05.2018, 16:24
Цитата Сообщение от NightSkyLark Посмотреть сообщение
Насколько понял дело в компиляторе.
Неужели это я написал ? Господе ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2018, 16:24

Контейнер map. Итератор не хочет принимать значение rbegin()
Почему этот кусок кода for(it=m.rbegin(),i=q;it!=m.rend();it--,i--) выбивает ошибку? Приmultimap&lt;int,string&gt; m; ...

Программа при запуске не хочет принимать и выводить формулу
Добрый день.При отладке программы после ввода значений а и б программа не выводит формулу(фото).В чем ошибка? ...

Больня тема. Яндекс не хочет принимать на индексацию сайт.
Здравствуйте, возникла проблема, а именно: Сайт www.1zona.ru с конца апреля до начала июля где-то начался отток переходов с яндекса,...

Компьютер не хочет принимать видеокарту 8600 gt - просто черный экран
здравствуйте! у меня компьютер не хочет принимать видеокарту 8600 gt, хотя раньше она работала а сейчас при включении на мониторе ничего не...

Компилятор не хочет принимать переменную как значение длины массива visual C++
Код // ConsoleApplication2.cpp : Этот файл содержит функцию &quot;main&quot;. Здесь начинается и заканчивается выполнение программы. // ...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru