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

Ввод с клавиатуры данных в массив

31.05.2023, 16:22. Показов 9362. Ответов 85
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описать структуру с именем note, содержащую следующие поля:
 фамилия, имя;
 номер телефона;
 дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
 ввод с клавиатуры данных в массив, состоящий из максимум 8 элементов типа note,
причем сделать возможность прервать ввод, чтобы можно было не вводить все 8
элементов; после окончания ввода отсортировать элементы массива по алфавиту;
 вывод в консоль информации о людях, чьи дни рождения приходятся на месяц, значение
которого введено с клавиатуры;
 если таких нет, вывести соответствующее сообщение;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2023, 16:22
Ответы с готовыми решениями:

Ввод с клавиатуры данных в массив
Написать программу выполняющую след. действия: -ввод с клавиатуры данных в массив состоящий из 10-ти структур типа Worker( с...

Ввод с клавиатуры данных в массив
Нужна помощь, 1)Определить класс с именем AEROFLOT, содержащий след поля: название пункта назначения рейса; номер рейса; тип...

Ввод данных в массив с клавиатуры
Ребят помогите.Нужен код , который бы заполнял массив с клавиатуры 3х4 . Вот код ввода данных с клавиатуры vvodcifri // ввод...

85
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
01.08.2023, 13:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
а если вот так?
Не
Code
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
C:\Users\andrew\prog\c\strings>cl COKPOWEHEU_rus3.c
Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.36.32537 для x86
(C) Корпорация Майкрософт (Microsoft Corporation).  Все права защищены.
 
COKPOWEHEU_rus3.c
Microsoft (R) Incremental Linker Version 14.36.32537.0
Copyright (C) Microsoft Corporation.  All rights reserved.
 
/out:COKPOWEHEU_rus3.exe
COKPOWEHEU_rus3.obj
 
C:\Users\andrew\prog\c\strings>COKPOWEHEU_rus3.exe
Проверка РІРІРѕРґР° текста РІ консоли (h,РІ,О»). Введите текст: [Р] = 0x0420
[џ] = 0x045F
[С] = 0x0421
[Ђ] = 0x0402
[Р] = 0x0420
[ѕ] = 0x0455
[Р] = 0x0420
[І] = 0x0406
[Р] = 0x0420
[µ] = 0x00B5
[С] = 0x0421
[Ђ] = 0x0402
[Р] = 0x0420
[є] = 0x0454
[Р] = 0x0420
[°] = 0x00B0
[ ] = 0x0020
[Р] = 0x0420
[І] = 0x0406
[Р] = 0x0420
[І] = 0x0406
[Р] = 0x0420
[ѕ] = 0x0455
[Р] = 0x0420
[ґ] = 0x0491
[Р] = 0x0420
[°] = 0x00B0
[ ] = 0x0020
[С] = 0x0421
[] = 0x201A
[Р] = 0x0420
[µ] = 0x00B5
[Р] = 0x0420
[є] = 0x0454
[С] = 0x0421
[Ѓ] = 0x0403
[С] = 0x0421
[] = 0x201A
[Р] = 0x0420
[°] = 0x00B0
[ ] = 0x0020
[Р] = 0x0420
[І] = 0x0406
[ ] = 0x0020
[Р] = 0x0420
[є] = 0x0454
[Р] = 0x0420
[ѕ] = 0x0455
[Р] = 0x0420
[Ѕ] = 0x0405
[С] = 0x0421
[Ѓ] = 0x0403
[Р] = 0x0420
[ѕ] = 0x0455
[Р] = 0x0420
[»] = 0x00BB
[Р] = 0x0420
[ё] = 0x0451
[ ] = 0x0020
[(] = 0x0028
[h] = 0x0068
[,] = 0x002C
[Р] = 0x0420
[І] = 0x0406
[,] = 0x002C
[О] = 0x041E
[»] = 0x00BB
[)] = 0x0029
[.] = 0x002E
[ ] = 0x0020
[Р] = 0x0420
[] = 0x2019
[Р] = 0x0420
[І] = 0x0406
[Р] = 0x0420
[µ] = 0x00B5
[Р] = 0x0420
[ґ] = 0x0491
[Р] = 0x0420
[ё] = 0x0451
[С] = 0x0421
[] = 0x201A
[Р] = 0x0420
[µ] = 0x00B5
[ ] = 0x0020
[С] = 0x0421
[] = 0x201A
[Р] = 0x0420
[µ] = 0x00B5
[Р] = 0x0420
[є] = 0x0454
[С] = 0x0421
[Ѓ] = 0x0403
[С] = 0x0421
[] = 0x201A
[:] = 0x003A
[ ] = 0x0020
 
C:\Users\andrew\prog\c\strings>
0
 Аватар для COKPOWEHEU
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,067
01.08.2023, 13:49
Цитата Сообщение от easybudda Посмотреть сообщение
Не
Ну а хотя бы так:
C
1
wchar_t str[100] = {0x041F, 0x0440, 0x043E, 0x0432, 0x0435, 0x0440, 0x043A, 0x0430, 0x0020, 0x0432, 0x0432, 0x043E, 0x0434, 0x0430, 0x0020, 0x0442, 0x0435, 0x043A, 0x0441, 0x0442, 0x0430, 0x0020, 0x0432, 0x0020, 0x043A, 0x043E, 0x043D, 0x0441, 0x043E, 0x043B, 0x0438, 0x0020, 0x0028, 0x0068, 0x002C, 0x0432, 0x002C, 0x03BB, 0x0029, 0x002E, 0x0020, 0x0412, 0x0432, 0x0435, 0x0434, 0x0438, 0x0442, 0x0435, 0x0020, 0x0442, 0x0435, 0x043A, 0x0441, 0x0442, 0x003A, 0x0020};
Цитата Сообщение от easybudda Посмотреть сообщение
[Р] = 0x0420
[џ] = 0x045F
[С] = 0x0421
Такое ощущение, что все-таки у msvc что-то не так то ли с кодировкой исходников (а что если поменять на utf-16?). Может, там настройки какие-то есть.
Оно зачем-то меняет коды символов 0x041F->0x0420, 0x0440->0x045F. Такое ощущение, что оно в cp1251 конвертирует при компиляции.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
01.08.2023, 14:40
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
а что если поменять на utf-16?
поменял
Code
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
C:\Users\andrew\prog\c\strings>cl COKPOWEHEU_rus3.c
Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.36.32537 для x86
(C) Корпорация Майкрософт (Microsoft Corporation).  Все права защищены.
 
COKPOWEHEU_rus3.c
Microsoft (R) Incremental Linker Version 14.36.32537.0
Copyright (C) Microsoft Corporation.  All rights reserved.
 
/out:COKPOWEHEU_rus3.exe
COKPOWEHEU_rus3.obj
 
C:\Users\andrew\prog\c\strings>COKPOWEHEU_rus3.exe
Проверка ввода текста в консоли (h,в,λ). Введите текст: [П] = 0x041F
[р] = 0x0440
[о] = 0x043E
[в] = 0x0432
[е] = 0x0435
[р] = 0x0440
[к] = 0x043A
[а] = 0x0430
[ ] = 0x0020
[в] = 0x0432
[в] = 0x0432
[о] = 0x043E
[д] = 0x0434
[а] = 0x0430
[ ] = 0x0020
[т] = 0x0442
[е] = 0x0435
[к] = 0x043A
[с] = 0x0441
[т] = 0x0442
[а] = 0x0430
[ ] = 0x0020
[в] = 0x0432
[ ] = 0x0020
[к] = 0x043A
[о] = 0x043E
[н] = 0x043D
[с] = 0x0441
[о] = 0x043E
[л] = 0x043B
[и] = 0x0438
[ ] = 0x0020
[(] = 0x0028
[h] = 0x0068
[,] = 0x002C
[в] = 0x0432
[,] = 0x002C
[λ] = 0x03BB
[)] = 0x0029
[.] = 0x002E
[ ] = 0x0020
[В] = 0x0412
[в] = 0x0432
[е] = 0x0435
[д] = 0x0434
[и] = 0x0438
[т] = 0x0442
[е] = 0x0435
[ ] = 0x0020
[т] = 0x0442
[е] = 0x0435
[к] = 0x043A
[с] = 0x0441
[т] = 0x0442
[:] = 0x003A
[ ] = 0x0020
 
C:\Users\andrew\prog\c\strings>
Теперь, правда, gcc обматерил и не собрал.
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
01.08.2023, 15:26
Лучший ответ Сообщение было отмечено easybudda как решение

Решение

easybudda,
Я раскрыл ваше дело. В смысле воспроизвел проблему и знаю решение.
Вы создали файл в кодировке UTF-8, но без BOM. Для cl обязательно нужен UTF8 c BOM (MinGW по барабану, что есть он, что нет). Пересохраните и все заработает.
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
01.08.2023, 16:58
Цитата Сообщение от DrOffset Посмотреть сообщение
Пересохраните и все заработает.
А ларчик ломом открывался...
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C:\Users\andrew\prog\c\strings>cl DrOffset_rus2.c
Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.36.32537 для x86
(C) Корпорация Майкрософт (Microsoft Corporation).  Все права защищены.
 
DrOffset_rus2.c
Microsoft (R) Incremental Linker Version 14.36.32537.0
Copyright (C) Microsoft Corporation.  All rights reserved.
 
/out:DrOffset_rus2.exe
DrOffset_rus2.obj
 
C:\Users\andrew\prog\c\strings>DrOffset_rus2.exe
Проверка ввода текста в консоли. Введите текст: йцукен
[й] = 0x 439
[ц] = 0x 446
[у] = 0x 443
[к] = 0x 43A
[е] = 0x 435
[н] = 0x 43D
 
C:\Users\andrew\prog\c\strings>
2
 Аватар для COKPOWEHEU
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,067
01.08.2023, 17:36
Ладно, тогда контрольная проверка кода:
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
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
 
#if defined(WIN32) || defined(_WIN32) //специальные костыли для виндовой консоли
  #pragma warning(disable : 4996)
  #define _CRT_SECURE_NO_WARNINGS 1
  #include <windows.h>
  #include "fcntl.h"
  #include <io.h>
  void coninit(){
    _setmode(_fileno(stdout), _O_U16TEXT);
    _setmode(_fileno(stdin), _O_U16TEXT);
  }
#else
  #define coninit()
#endif
 
int main(){
  coninit();
  setlocale(LC_ALL, "");
  wchar_t str[100];
  wprintf(L"Проверка ввода текста в консоли (h,в,λ). Введите текст: ");
  wscanf(L"%ls", str);
  for(int i=0; str[i]!=0; i++){
    wprintf(L"[%lc] = 0x%04X\n", str[i], (int)str[i]);
  }
  return 0;
}
И, если работает, можно отмечать как лучший ответ чтобы не потерялось. Я-то его к себе в любом случае скопирую чтобы не искать эту тему по новой.
2
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
01.08.2023, 17:48
Code
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
C:\Users\andrew\prog\c\strings>cl COKPOWEHEU_final_rus.c
Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.36.32537 для x86
(C) Корпорация Майкрософт (Microsoft Corporation).  Все права защищены.
 
COKPOWEHEU_final_rus.c
Microsoft (R) Incremental Linker Version 14.36.32537.0
Copyright (C) Microsoft Corporation.  All rights reserved.
 
/out:COKPOWEHEU_final_rus.exe
COKPOWEHEU_final_rus.obj
 
C:\Users\andrew\prog\c\strings>COKPOWEHEU_final_rus.exe
Проверка ввода текста в консоли (h,в,λ). Введите текст: тырпыр
[т] = 0x0442
[ы] = 0x044B
[р] = 0x0440
[п] = 0x043F
[ы] = 0x044B
[р] = 0x0440
 
C:\Users\andrew\prog\c\strings>clang -Wall -o COKPOWEHEU_final_rus_clang.exe COKPOWEHEU_final_rus.c
 
C:\Users\andrew\prog\c\strings>COKPOWEHEU_final_rus_clang.exe
Проверка ввода текста в консоли (h,в,λ). Введите текст: тырпыр
[т] = 0x0442
[ы] = 0x044B
[р] = 0x0440
[п] = 0x043F
[ы] = 0x044B
[р] = 0x0440
 
C:\Users\andrew\prog\c\strings>
И даже в вообще не виндовсе работает
Code
1
2
3
4
5
6
7
8
9
10
11
12
[andrew@botsrv ~/prog/c/string]$ gcc -Wall COKPOWEHEU_final_rus.c
[andrew@botsrv ~/prog/c/string]$ ./a.out
Проверка ввода текста в консоли (h,в,λ). Введите текст: тырпыр
[т] = 0x0442
[ы] = 0x044B
[р] = 0x0440
[п] = 0x043F
[ы] = 0x044B
[р] = 0x0440
[andrew@botsrv ~/prog/c/string]$ uname -rs
FreeBSD 13.2-RELEASE
[andrew@botsrv ~/prog/c/string]$
На том предлагаю и разойтись. DrOffset лучший!
2
01.08.2023, 18:02

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
На том предлагаю и разойтись. DrOffset лучший!
Проплюсовал его пост с решением. Как минимум, теперь через "отзывы" можно будет найти эту тему. Ну и вас тоже. Все-таки не лень было ставить себе все эти компиляторы и проверять чужой код.

0
 Аватар для AlexProgramm
227 / 98 / 32
Регистрация: 01.10.2022
Сообщений: 696
Записей в блоге: 47
02.08.2023, 09:23
А я лучший, я лучший!!!??? Я эту тему со дна поднял!!
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.08.2023, 12:05
Цитата Сообщение от easybudda Посмотреть сообщение
Всё-то в ваших виндовсах через ж... Не по-людски как-то...
А ваш линь понимает лишь utf-8. А о том, что в природе существуют и прекрасно себя чувствуют другие кодировки в том числе и однобайтовые, ну совсем не в курсах.. Не по людски как-то. А по людски, когда понимает и даже учитывает этот факт природной жизни. Вин учитывает. Только не надо про то, что utf-8 это универсальный мультитул.
0
 Аватар для COKPOWEHEU
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,067
02.08.2023, 12:45
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А о том, что в природе существуют и прекрасно себя чувствуют другие кодировки в том числе и однобайтовые, ну совсем не в курсах.
iconv в помощь. Вам эти однобайтные кодировки зачем нужны-то? Я вот могу придумать только полтора варианта: взаимодействие со всякой древностью, которая юникод не понимает; микроконтроллеры, в которых недостаточно памяти. Впрочем, даже в контроллерах проще на лету в юникод преобразовывать, а хранить хоть в самодельной кодировке.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А по людски...
...это когда оно просто работает и не курочит мозги программисту.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.08.2023, 13:08
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вам эти однобайтные кодировки зачем нужны-то?
Например, чтобы по сети не гуляло туева куча совершенно бесполезных байтов. У меня допустим сайт в однобайтной кодировке, потому что а) этого достаточно б) сайт загружается быстрее. И у меня действительно был такой сайт. Загружался он мгновенно. Это очень скажу вам приятно. И мне хватало, а там было ой как много информации. А на современных сайтах часто видишь квадратики и иероглифы вместо понятных русских букв. И обработка такого сайта средствами пыха очень быстра. Да и алгоритмы обработки строк гораздо понятнее.
А теперь скажите зачем вам двух и более байтная кодировка? Чтобы писать под китайскую, корейскую аудиторию? Зачем?
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
...это когда оно просто работает и не курочит мозги программисту.
Программист на то и программист, чтобы свои мозги др...ь.. Вот потребитель совсем не должен.
0
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 887
02.08.2023, 14:34
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А теперь скажите зачем вам двух и более байтная кодировка?
Вот мне очень хочется потом такого программиста заставить набирать контент для такого сайта, содержащего различные знаки математические, греческие символы для описания содержимого формул, даже если формулы в картинках - то описания в тексте идут. А ещё лучше - будете обучать пользователя как ему тест из ворда вставлять - где есть такие символы а потом если надо правку сделать - скопировать с сайта в ворд, там поправить и обратно вставить.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
сайт загружается быстрее
если вы хоть раз в жизни проводили анализ как загружается сайт и на что броузер тратир время, ты вы видели что основное время тратится на JS и подзапросы, а если сайт передаёт чистый html - то всё делается мгновенно.
а ещё веб сервер обычно сжимает текстовый трафик и ещё шифрует его ) а у пользователя в обратном порядке.

то что вы не работаете с такими символами не значит что пользователи не работают.

да даже просто смайлики в тексте - при использовании utf8 - это просто ещё один codepoint из стандарта а для однобайтной кодировки это проблема и приходится суррогаты самому придумывать.

вы хоть посмотрите сколько всего сейчас в utf8 включили символов и знаков
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.08.2023, 15:54
Цитата Сообщение от Aledveu Посмотреть сообщение
А ещё лучше - будете обучать пользователя как ему тест из ворда вставлять - где есть такие символы а потом если надо правку сделать - скопировать с сайта в ворд, там поправить и обратно вставить.
А вы в вордовский формат гляньте: никаких расширенных символов там нет и в помине. Там теги. Теги - великая вещь, она может всё! И ваши греческие формулы и в сам греческий с эфиопским может. Я уж про всякие смайлики молчу: сами наверно знаете о bb кодах.
А от чего зависит скорость загрузки страниц это в другой темке, а не в этой.
0
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 887
02.08.2023, 16:17
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Там теги. Теги - великая вещь, она может всё!
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Да и алгоритмы обработки строк гораздо понятнее.
вы сами себе противоречите.
ну либо вам обработать строку с открывающими и закрывающими тегами и кодами внутри проще чем вызвать стандартную функцию.

Мне вот тут приходилось разбираться в исходных кодах на С которые были написаны японцами с комментами на японском - так что даже в редакторе кода такое можно встретить. И соответственно копировать из текста и вставлять в онлайн гугл переводчик.

Кстати и в микроконтроллерах юникод не сильно нагружает ибо там всё-равно приходится что-то городить с преобразованием кодов символов ибо даже если используются растровые шрифты при выводе на графический ЖК экранчик - то не весь же шрифт хранить.

Вы кстати в git репозитарии тоже прописываете свою кодировку ?
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.08.2023, 16:58
Цитата Сообщение от Aledveu Посмотреть сообщение
вы сами себе противоречите.
Нет. Всегда основной текст европейских языков можно представить в однобайтной кодировке. И любой браузер это хорошо обучен понимать. А спец-символы можно представлять тегами в той же однобайтной кодировке. Даже символы юникода представляют тегами если они нужны. И браузер или текстовый редактор типа ворда это все успешно отобразит. Не знаю, я рос на dos и привык к обычным кодировкам, а расширенных сторонюсь.. Что-то тут не то..
Цитата Сообщение от Aledveu Посмотреть сообщение
Мне вот тут приходилось разбираться в исходных кодах на С которые были написаны японцами с комментами на японском - так что даже в редакторе кода такое можно встретить. И соответственно копировать из текста и вставлять в онлайн гугл переводчик.
Это безумие. Комменты должны быть на английском если люди пишут открытый проект. И код у них был в юникоде. И все константные строки тоже. А у меня допустим в другой кодировке и кусок ихнего кода мне надо перекодировать с потерей всех константных строк.. Код должен и обязан быть в однобайтной кодировке ascii, всегда и везде, иначе зопа.
И я не работаю с гитом, хотя эксперементировал.
0
 Аватар для COKPOWEHEU
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,067
02.08.2023, 17:17
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Например, чтобы по сети не гуляло туева куча совершенно бесполезных байтов. У меня допустим сайт в однобайтной кодировке
Вы никогда не слышали, что оптимизировать нужно узкое место, а не первое попавшееся? Сколько процентов трафика в сети занимает передача текста, отображаемого человеку? Вы уверены, что экономия на этой доли процента оправдывает геморрой с однобайтной кодировкой?
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Программист на то и программист, чтобы свои мозги др...ь.
Др...ь ради того чтобы др...ь это не работа программиста, если что. Работа программиста это ломать голову над реальной задачей. Ну или хотя бы над интересной.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А вы в вордовский формат гляньте: никаких расширенных символов там нет и в помине.
Ну, ворда у меня, разумеется, нет, но в офисный формат заглянул. "Внезапно", текст там все также хранится в utf-8. Открываем файл как архив, в нем будет файл context.xml, и в нем по тегу <text text:style-name="P1"> собственно текст. По крайней мере, у меня он нашелся там.
Цитата Сообщение от Aledveu Посмотреть сообщение
Кстати и в микроконтроллерах юникод не сильно нагружает
В микроконтроллерах может не быть столько памяти чтобы хранить больше одного локального языка. А если так, то и кодировать его проще в той же локали, не тратя двойное количество памяти. Да и перекодировка тоже не такое простое занятие: коды какого-нибудь cp1251 ведь в десяток мест юникода отображаются.
0
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 887
02.08.2023, 18:09
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Это безумие. Комменты должны быть на английском если люди пишут открытый проект. И код у них был в юникоде. И все константные строки тоже. А у меня допустим в другой кодировке и кусок ихнего кода мне надо перекодировать с потерей всех константных строк.. Код должен и обязан быть в однобайтной кодировке ascii, всегда и везде, иначе зопа.
кстати интересное описание от gcc
1.1 Character sets

Source code character set processing in C and related languages is rather complicated. The C standard discusses two character sets, but there are really at least four.

The files input to CPP might be in any character set at all. CPP's very first action, before it even looks for line boundaries, is to convert the file into the character set it uses for internal processing. That set is what the C standard calls the source character set. It must be isomorphic with ISO 10646, also known as Unicode. CPP uses the UTF-8 encoding of Unicode.

At present, GNU CPP does not implement conversion from arbitrary file encodings to the source character set. Use of any encoding other than plain ASCII or UTF-8, except in comments, will cause errors. Use of encodings that are not strict supersets of ASCII, such as Shift JIS, may cause errors even if non-ASCII characters appear only in comments. We plan to fix this in the near future.

All preprocessing work (the subject of the rest of this manual) is carried out in the source character set. If you request textual output from the preprocessor with the -E option, it will be in UTF-8.

After preprocessing is complete, string and character constants are converted again, into the execution character set. This character set is under control of the user; the default is UTF-8, matching the source character set. Wide string and character constants have their own character set, which is not called out specifically in the standard. Again, it is under control of the user. The default is UTF-16 or UTF-32, whichever fits in the target's wchar_t type, in the target machine's byte order.1 Octal and hexadecimal escape sequences do not undergo conversion; '\x12' has the value 0x12 regardless of the currently selected execution character set. All other escapes are replaced by the character in the source character set that they represent, then converted to the execution character set, just like unescaped characters.
и опции командной строки

-fexec-charset=charset

Set the execution character set, used for string and character constants. The default is UTF-8. charset can be any encoding supported by the system’s iconv library routine.


-fwide-exec-charset=charset

Set the wide execution character set, used for wide string and character constants. The default is one of UTF-32BE, UTF-32LE, UTF-16BE, or UTF-16LE, whichever corresponds to the width of wchar_t and the big-endian or little-endian byte order being used for code generation. As with -fexec-charset, charset can be any encoding supported by the system’s iconv library routine; however, you will have problems with encodings that do not fit exactly in wchar_t.


-finput-charset=charset

Set the input character set, used for translation from the character set of the input file to the source character set used by GCC. If the locale does not specify, or GCC cannot get this information from the locale, the default is UTF-8. This can be overridden by either the locale or this command-line option. Currently the command-line option takes precedence if there’s a conflict. charset can be any encoding supported by the system’s iconv library routine.
и для VS

You can use the /utf-8 option to specify both the source and execution character sets as encoded by using UTF-8. It's equivalent to specifying /source-charset:utf-8 /execution-charset:utf-8 on the command line. Any of these options also enables the /validate-charset option by default. For a list of supported code page identifiers and character set names, see Code Page Identifiers.

By default, Visual Studio detects a byte-order mark to determine if the source file is in an encoded Unicode format, for example, UTF-16 or UTF-8. If no byte-order mark is found, it assumes that the source file is encoded in the current user code page, unless you've specified a code page by using /utf-8 or the /source-charset option. Visual Studio allows you to save your C++ source code in any of several character encodings. For information about source and execution character sets, see Character sets in the language documentation.
1
03.08.2023, 06:00

Не по теме:

Чем ничтожнее тема, тем длиннее обсуждение :)

0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
03.08.2023, 06:22
Цитата Сообщение от Catstail Посмотреть сообщение
Чем ничтожнее тема
Ну не скажите. Я к примеру не знал универсального способа консоль русифицировать. Теперь знаю. И про подводный камень в виде
Цитата Сообщение от DrOffset Посмотреть сообщение
Для cl обязательно нужен UTF8 c BOM
даже не догадывался. Так, что, 4 страницы проб и ошибок того стоили. А то, что очередной локальный холивар начался - так сами видите, в разделе дай бог одна тема в неделю появляется. Скучно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.08.2023, 06:22

Ввод данных с клавиатуры в одномерный массив
Здравствуйте. У нас есть массив из 16 элементов, с клавиатуры вводятся 16 различных цифр подряд (1234567890675923) после того как мы ввели...

Ввод с клавиатуры данных в массив, состоящий из 10 структур типа STUDENT
Помогите пожалуйста. Выдает в строке NAME: MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM а потом имя. Как убрать буквы M? #include...

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN
помогите пожалуйста, не получается сделать,туго с динамикой. • Описать структуру с именем TRAIN, содержащую следующие поля: • название...

Ввод с клавиатуры данных в массив, состоящий из восьми элементов заданного типа
Вариант 16 Описать структуру с именем ZNAK, содержащую следующие поля: • фамилия, имя; • знак Зодиака; • дата рождения (массив...

Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры
Найти в массиве наибольшее число подряд идущих одинаковых элементов (например {1,5,3,6,6,6,6,6,3,4,4,5,5,5} = 5). Заранее большое спасибо.


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru