LINUX.ORG.RU

как вводить русские буквы?

 


0

2

 #include <iostream>
#include <string>
using namespace std;
int main() {
	setlocale(LC_ALL, "rus");
	string word;
	char vowels[10]{'а','е','ё','и','о','у','э','ы','ю','я'};
	getline(cin, word, '.');
	cout << word;
	
	return 0;
} 
 

 
 На ввод (это просто нечто.) оно мне выводит (нвR ЇаRбвR -?звR).
 Как это исправить подскажите.

char vowels[10]{‘а’,‘е’,‘ё’,‘и’,‘о’,‘у’,‘э’,‘ы’,‘ю’,‘я’};

Нельзя так делать. Для символа может использоваться разное число байт. Надо всегда использовать строки даже для одного символа.

X512 ★★★★★
()
Ответ на: комментарий от hobbit

C++ — хороший язык, только вот STL его испортил…

+1. Для многих вещей включая ввод-вывод проще библиотекой Си пользоваться.

X512 ★★★★★
()
Ответ на: комментарий от maxis11

А ещё замечательно, что и для UTF16 находятся символы, которые в него не влезают, что ценность всех этих приседаний значительно снижает.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

А ещё замечательно, что и для UTF16 находятся символы, которые в него не влезают

Если с суррогатными парами (два двухбайтных символа), то пока всё влезает.

что ценность всех этих приседаний значительно снижает

UTF-16 - это нативная кодировка WinApi, также она используется в Java и в других фреймворках. Как минимум она нужна для совместимости со всем этим.

X512 ★★★★★
()
Ответ на: комментарий от hobbit

Перефразируя Булгакова, C++ — хороший язык, только вот STL его испортил…

Развитием C++ занимаются персонажи из «Мастер и Маргарита» /Булгаков предупреждал/ …

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Шутка

Эшо о развитии C++ …

Как использовать в C++ русские названия управляющих операторов /помогу немного «крутым» из корпораций/?

Элементарно Ватсон!

Пишем

 @Если ( @Истина ) ..., а любым шаблонизатором меняем "@Если" на "if" и "@Истина" на "TRUE"  
Все!
Товарищи разработчики, доценты с кандидатами!
Замучились вы с if-ами, запутались в NULL-ях
Сидите, разлагаете template на атомы
Забыв, что разлагается картофель на полях

Из гнили да из template бальзам извлечь пытаетесь
И class используете gj десять раз на дню
Ох, вы там добалуетесь, ох, вы разрабатываетесь
Пока сгниет, заплесневеет картофель на корню!

Товарищи разработчики, эйнштейны драгоценные,
Ньютоны ненаглядные, любимые до слёз!
Ведь лягут в землю общую программы наши бренные,
Компьютеру едино: C++ или навоз.

Так приезжайте, милые, — рядами и колоннами!
Хотя вы все там дурики и нет на вас креста,
Но вы ж ведь там задохнетесь за temзlate-ами,
А тут места отличные — воздушные места!

Товарищи учёные, не сумлевайтесь, милые:
Коль что у вас не ладится — ну, там, не тот аффект, —
Мы мигом c ЛОР к вам заявимся с PHP и Python,
Метапрога позавем — и выправим дефект!

Владимир

anonymous
()
Ответ на: комментарий от anonymous
Товарищи разработчики, доценты с кандидатами!
Замучились вы с if-ами, запутались в NULL-ях
Сидите, разлагаете template на атомы
Забыв, что разлагается картофель на полях

Из гнили да из template бальзам извлечь пытаетесь
И class используете по десять раз на дню
Ох, вы там добалуетесь, ох, вы доразрабатываетесь
Пока сгниет, заплесневеет картофель на корню!

Товарищи разработчики, эйнштейны драгоценные,
Ньютоны ненаглядные, любимые до слёз!
Ведь лягут в землю общую программы наши бренные,
Компьютеру едино: C++ или навоз.

Так приезжайте, милые, — рядами и с семьями!
Хотя вы там все дурики и нет на вас креста,
Но вы ж ведь там окочуретесь за template-ами и class-ами,
А на ЛОР места отличные — флудливые места!

Товарищи учёные, не сумлевайтесь, милые:
Коль что у вас не ладится — ну, там, не тот аффект, —
Мы мигом c ЛОР к вам заявимся с PHP и Python-ном,
Метапрога позовем — и выправим дефект!

Владимир

anonymous
()
Ответ на: комментарий от X512

Почему же? Можно. А то что в оригинале в IDE высветится краснющим варнингом.

char16_t vowels[10]{ u'а', u'е', u'ё', u'и', u'о', u'у', u'э', u'ы', u'ю', u'я' };
anonymous
()
Ответ на: комментарий от peregrine

В чём проблемы? Подошёл, взял gcc/clang, уверенно сказал:

#include <stdio.h>
...
char unicode[] = "юникод";
puts(unicode);

Трудно только посчитать потом длину такой строки в символах (в этом помогут васянолибы на 20-30 КБ).

Так что автор виндузятник скорее всего и разводит флейм, язабан.

ArkaDOSik ★★
()
Последнее исправление: ArkaDOSik (всего исправлений: 1)
Ответ на: комментарий от anonymous

char16_t vowels[10]

Некоторые символы занимают два char16_t (суррогатные пары).

X512 ★★★★★
()
Ответ на: комментарий от X512

Для него и деление на vowels/consonants тоже не работает. И вообще есть сомнение, что это буква. Скорее слово.

monk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.