Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
0 / 0 / 0
Регистрация: 11.04.2026
Сообщений: 3

Русские буквы VS Studio 2022

11.04.2026, 13:37. Показов 1342. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, у кого была та же проблема что setlocale(LC_ALL, "RU");, а так же в настройках документации выбрано сохранение в 65001. И как бы русские буквы есть если переменные объявлять при компиляции. Но если через cin вводишь то выдает иероглифы. Гуглил, искал на ютубе, спрашивал у gpt. не могу победить проблему. Кто утыкался в такую же дичь, помогите решить пожалуйста...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2026, 13:37
Ответы с готовыми решениями:

Компилятор MS Visul Studio 2005 не поддерживает русские буквы
Мой компилятор MS Visul Studio 2005 не поддерживате руские буквы.Как сделать чтобы он их...

Русские буквы в C++ и RAD STUDIO XE3
Ввод и вывод русских букв в консоли кто знает как это можно настроить в раде

Русские буквы в GET запросах Libcurl (Visual Studio 2019)
Всем заинтересованным доброго времени суток. Решил я тут на днях примкнуть к извращенцам-любителям...

28
Злостный нарушитель
 Аватар для Verevkin
10651 / 5800 / 1281
Регистрация: 12.03.2015
Сообщений: 26,783
11.04.2026, 15:19
Цитата Сообщение от Freedoom88 Посмотреть сообщение
Добрый день, у кого была та же проблема что setlocale(LC_ALL, "RU");, а так же в настройках документации выбрано сохранение в 65001. И как бы русские буквы есть если переменные объявлять при компиляции. Но если через cin вводишь то выдает иероглифы. Гуглил, искал на ютубе, спрашивал у gpt. не могу победить проблему.
Юникод изобрели 40 лет назад, но ещё находятся невежды, упорно юзающие однобайтные кодировки текста.

Уму не растяжимо..........

Добавлено через 1 час 18 минут
Пример, как юзать юникод:
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
48
49
50
51
52
53
54
// https://www.cyberforum.ru/cpp-beginners/thread3188481.html
/*  Задание: Дана строка символов. Признак конца строки – символ '\n'
    (перевод строки). Строка состоит из слов, pазделенных пpобелами. Вывести:
    а) слова, у котоpых пеpвая и последняя буквы одинаковые, и
    количество таких слов;  */
 
#include <iostream>
#include <sstream>
#include <vector>
#include <cassert>
#include <fcntl.h>
 
using namespace std;
typedef vector<wstring> VWS;
 
// вернёт true, если начальный и конечный символы строки word равны
bool valid(wstring &word)
{
  auto len = word.length();
  assert(len); 
  return towupper(word[0]) == towupper(word[len - 1]);
}
 
// разделение строки по лексемам через разделитель delim
size_t wsplit(const wstring &ws, wchar_t delim, VWS &words) 
{
  wstringstream wss(ws);
  wstring item;
  words.clear();
  while (getline(wss, item, delim)) words.push_back(item);  
  return words.size();  
}
 
int main()
{
  _setmode(_fileno(stdout), _O_U16TEXT);
  _setmode(_fileno(stdin),  _O_U16TEXT);
  
  wstring ws; // = L"Ваше время ограничено не тратьте его живя чужой жизнью";
  wcout << L"? Введите слова через пробел: ";
  getline(wcin, ws);
  
  VWS words; 
  auto total = wsplit(ws, L' ', words);
  wprintf(L"# Всего слов в строке: %zu\n", total);
  
  size_t found = 0;
  for (auto &w : words)
    if (valid(w))
      wprintf(L"$ %zu. \x22%ls\x22\n", ++found, w.c_str());
      
  wprintf(L"# Найдено: %zu\n", found);
  return 0;
}
0
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,097
11.04.2026, 15:21
Не знаю как у профессионалов, не профессионал.
Ни в одной мною написанной программе нету ни одного cin.
Ещё бывают такие написанные программы,
что их надо вызывать из командной строки, и туда писать какую то не понятную хрень...
----------------
Я по своим детям скажу, если при вводе данных надо что то подумать и что то туда напечатать,
это облом. Никто такой программой пользоваться не станет.
----------------
Может есть упёртые линуксоиды, они всё время долбят по клавишам и винду ругают...
Когда тратишь дополнительное время на ввод данных,
и если его такого ввода очень много, это сильно тормозит работу.
1
Злостный нарушитель
 Аватар для Verevkin
10651 / 5800 / 1281
Регистрация: 12.03.2015
Сообщений: 26,783
11.04.2026, 15:23
Цитата Сообщение от Наталья8 Посмотреть сообщение
Не знаю как у профессионалов, не профессионал.
Ни в одной мною написанной программе нету ни одного cin.
Прально.
0
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,097
11.04.2026, 15:29
Цитата Сообщение от Verevkin Посмотреть сообщение
однобайтные кодировки текста
Если английский и иного не предвидиться, или цифры, например ip адреса, то нахрена нужен юникод?
Видел я эту тётку... Вошла в историю.

Добавлено через 5 минут
Я конвертирую кучу коротких видео...
Если мне на каждое печатать параметры
и вызывать утилиту ffmpeg командной строкою,
то извиняюсь, полжизни на эту уйдёт.
(Впустую.)
0
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,097
11.04.2026, 15:39
Эти утилиты, профессионалы писали и у меня повсюду мандавошки вот такие.



Это связка visul studio и вот этот крутой блокнот ++...
И от куда мандавошки?
Notepad++ ????
0
Злостный нарушитель
 Аватар для Verevkin
10651 / 5800 / 1281
Регистрация: 12.03.2015
Сообщений: 26,783
11.04.2026, 15:48
Цитата Сообщение от Наталья8 Посмотреть сообщение
И от куда мандавошки?
Гигиену не соблюдаешь - вот и завелись.
Не шныряй в незнакомых местах! © Юра Хой (Клинских)
Пришли файл, любопытно мне.
0
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,097
11.04.2026, 15:56
test_.rar
0
Злостный нарушитель
 Аватар для Verevkin
10651 / 5800 / 1281
Регистрация: 12.03.2015
Сообщений: 26,783
11.04.2026, 16:09
Цитата Сообщение от Наталья8 Посмотреть сообщение
test_.rar




1
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,097
11.04.2026, 16:20
Блокнот такого не исправляет...
0
 Аватар для Наталья8
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,097
11.04.2026, 16:24
А visual studio я это пять лет как не открывал.
На блокноте это UTF8...


Т.Е - UTF8 на блокноте, совсем не то, что UTF8 на studio.
0
Злостный нарушитель
 Аватар для Verevkin
10651 / 5800 / 1281
Регистрация: 12.03.2015
Сообщений: 26,783
11.04.2026, 16:27
Цитата Сообщение от Наталья8 Посмотреть сообщение
Блокнот такого не исправляет...




Название: images.jpg
Просмотров: 143

Размер: 8.7 Кб
0
 Аватар для volodin661
6804 / 2303 / 349
Регистрация: 10.12.2013
Сообщений: 7,927
11.04.2026, 17:12
Цитата Сообщение от Наталья8 Посмотреть сообщение
Может есть упёртые линуксоиды, они всё время долбят по клавишам и винду ругают...
Вот что надо написать линуксоиду, чтобы ввести и увидеть руски буквы:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main() {
    char symbol;
    // Read characters until EOF (End of File)
    while (std::cin.get(symbol)) {
        // Write the character to stdout
        std::cout << symbol;
    }
    return 0;
}
Вот что надо написать линуксоиду, чтобы ввести и увидеть японские буквы:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main() {
    char symbol;
    // Read characters until EOF (End of File)
    while (std::cin.get(symbol)) {
        // Write the character to stdout
        std::cout << symbol;
    }
    return 0;
}
Вот что надо написать линуксоиду, чтобы ввести и увидеть американские буквы:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main() {
    char symbol;
    // Read characters until EOF (End of File)
    while (std::cin.get(symbol)) {
        // Write the character to stdout
        std::cout << symbol;
    }
    return 0;
}
0
0 / 0 / 0
Регистрация: 11.04.2026
Сообщений: 3
11.04.2026, 18:59  [ТС]
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
48
49
50
51
52
53
#include <iostream>
#include <string>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "RU");
    char ch = '*';
    char ch2 = ' ';
    string name1, name2, name3, name_gr;
    string str1 = "Лабораторная работа № 1";
    string str2 = "Выполнил(а): ст. гр. ";
    string fio;
    int max = str1.length();
    cout << "Введите ваше имя: " << endl;
    cin >> name1;
    cout << "Введите вашу фамилию: " << endl;
    cin >> name2;
    cout << "Введите ваше отчество: " << endl;
    cin >> name3;
    cout << "Введите вашу группу: " << endl;
    cin >> name_gr;
    str2 += name_gr;
    fio = name1 + " " + name2 + " " + name3;
    
    if (str2.length() > max)
        max = str2.length();
    if (fio.length() > max)
        max = fio.length();
    
    for (int i = 0; i < (max + 4); i++) {
        cout << ch;
    }
    cout << "\n* " << str1;
    for (int i = 0; i <= (max - str1.length()); i++) {
        cout << ch2;
    }
    cout << ch << "\n* " << str2;
    for (int i = 0; i <= (max - str2.length()); i++) {
        cout << ch2;
    }
    cout << ch << "\n* " << fio;
    for (int i = 0; i <= (max - fio.length()); i++) {
        cout << ch2;
    }
    cout << ch << endl;
    for (int i = 0; i < (max + 4); i++) {
        cout << ch;
    }
 
    
    
    return 0;
}
Вот код, использую студио 2022, в настройках сохранение стоит 65001, то уже написанно по русски - ОК, то что вводится cin - NotOK. Кто поможет тот молодец))
Я новичок, учусь сам на видеоуроках, делаю в процессе обучения задания из интернета, поэтому пишу как умею, какие навыки есть так и пишу. Суть темы не в том как круче короче написать, а так что бы работало хотя бы.
0
 Аватар для volodin661
6804 / 2303 / 349
Регистрация: 10.12.2013
Сообщений: 7,927
11.04.2026, 19:06
Русские буквы VS Studio 2022
Как может убедиться непредвзятый читатель, вооруженный лорнетом или без него,
во всех трех случаях в unix используется один и тот же тип char и один и тот же код,
хотя в юникоде американский символ это один байт, кириллический - два, японский иероглиф - три.

несчастные 'линуксоиды' ужасно мучаются этим в отличие от счастливых виндулей,
которые десятилетиями пересылают друг другу на форумах один и тот же вопрос, сопровождаемый
картинками, худож. и мультипликационными видео, рассказами и пересказами автобиографий, язвительными дружескими советами и кое-чем ещё, а именно - как, как ввести и увидеть руску букву, КАК ?
2
Злостный нарушитель
 Аватар для Verevkin
10651 / 5800 / 1281
Регистрация: 12.03.2015
Сообщений: 26,783
11.04.2026, 19:21
Цитата Сообщение от Freedoom88 Посмотреть сообщение
Вот код, использую студио 2022
У меня нет MSVS, вот так работает в gcc/g++:



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>
#include <string>
using namespace std;
 
int main() 
{
  system("chcp 65001 && cls");
  //setlocale(LC_ALL, "RU");
  char ch = '*';
  char ch2 = ' ';
  string name1, name2, name3, name_gr;
  string str1 = "Лабораторная работа № 1";
  string str2 = "Выполнил(а): ст. гр. ";
  string fio;
 
  int max = str1.length();
  
  cout << "Введите ваше имя: " << endl;
  cin >> name1;
  cout << "Введите вашу фамилию: " << endl;
  cin >> name2;
  cout << "Введите ваше отчество: " << endl;
  cin >> name3;
  cout << "Введите вашу группу: " << endl;
  cin >> name_gr;
  str2 += name_gr;
  fio = name1 + " " + name2 + " " + name3;
  
  if (str2.length() > max) max = str2.length();
  if (fio.length() > max)  max = fio.length();
  
  for (int i = 0; i < (max + 4); i++) cout << ch;
 
  cout << "\n* " << str1;
  for (int i = 0; i <= (max - str1.length()); i++) cout << ch2;
 
  cout << ch << "\n* " << str2;
  for (int i = 0; i <= (max - str2.length()); i++) cout << ch2;
 
  cout << ch << "\n* " << fio;
  for (int i = 0; i <= (max - fio.length()); i++) cout << ch2;
 
  cout << ch << endl;
  for (int i = 0; i < (max + 4); i++) cout << ch;
  
  return 0;
}
0
Эксперт .NET
 Аватар для Rius
13205 / 7733 / 1681
Регистрация: 25.05.2015
Сообщений: 23,560
Записей в блоге: 14
11.04.2026, 21:37
Цитата Сообщение от volodin661 Посмотреть сообщение
Вот что надо написать линуксоиду, чтобы ввести и увидеть японские буквы:
Цитата Сообщение от volodin661 Посмотреть сообщение
несчастные 'линуксоиды' ужасно мучаются
Ага, тут сразу вспоминается
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Благо, КОИ8-Р этим не страдает ☺
, как яркий представитель линуксоидов.
0
3 / 2 / 1
Регистрация: 07.01.2025
Сообщений: 12
11.04.2026, 22:15
Лучший ответ Сообщение было отмечено Freedoom88 как решение

Решение

Я не совсем понял, что нужно товарищу, но если нужно вывести и ввести текст в любой кодировке, чтобы русский текст без ошибок отображался в консоли, то вот пример кода, который работает у меня в студии 2022:
C
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main() {
    system("chcp 1251 > NUL");
    std::cout << "Привет, <%username%>!" << std::endl;
    char text[100];
    std::cin.getline(text, 100);
    std::cout << text;
}
Кодировка в проекте выбрана UNICODE.
1
Эксперт .NET
 Аватар для Rius
13205 / 7733 / 1681
Регистрация: 25.05.2015
Сообщений: 23,560
Записей в блоге: 14
11.04.2026, 23:42
Цитата Сообщение от iak Посмотреть сообщение
Кодировка в проекте выбрана UNICODE.
А кодировка текстового исходника cpp какая? Посмотреть можно в notepad++, например.
0
3 / 2 / 1
Регистрация: 07.01.2025
Сообщений: 12
11.04.2026, 23:55
Кодировка UTF-8 с BOM.
Миниатюры
Русские буквы VS Studio 2022  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2026, 23:55
Помогаю со студенческими работами здесь

Visual Studio 2022 vs DevC++
Всем привет! Не так давно начал изучать С++, и всегда пользовался компилятором DevC++ и проблем...

Идентификатор isdigit() не определен [Visual Studio 2022]
изначально писал код в dev c++ где isidigit работал, но не работала функция stod, там выдавало эту...

Visual Studio 2022 игнорирует модификатор register
Всем привет. Прошу помощи у знающих. Читаю букварь по С++, и столкнулся с такой проблемой, есть...

MS Visual Studio 2022 библиотека aff3ct; C++11
Добрый день, устанавливал библиотеку aff3ct и столкнулся с проблемой, для ее работы необходимо...

Ошибка при установке расширения Qt в Visual Studio 2022
Лог файл: 20.06.2022 18:14:34 - Microsoft VSIX Installer 20.06.2022 18:14:34 -...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru