Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43

Странно работает wstring при попытке прибавить символ через +=

20.07.2023, 12:18. Показов 3258. Ответов 22

Студворк — интернет-сервис помощи студентам
Я пытаюсь загружать текст по так называемому id из файла, чтоб можно было добавлять ещё таких файлов и быстро переводить много текста, но при попытке прибавить w-символ к w-строке компилятор выдаёт ошибку Error -1073741819. Я попытался отладить ошибку через онлайн компилятор (я делаю в sublime text а там с отладкой не так просто)https://www.onlinegdb.com/online_c++_compiler и там всё работает как нужно

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
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
#include <fstream>
#include <malloc.h>
 
using namespace std;
 
 
 
class lang
{
    string path = "ru.txt";
 
 
    wstring *words = (wstring*)malloc(sizeof(wstring));
    wstring *names = (wstring*)malloc(sizeof(wstring));
 
 
 
 
    int size = 0;
 
    bool isLoad=false;
 
 
public:
        lang()/////конструкторы
        {       
                    load();     
        }
 
        lang(string pat)
        {
            path = pat;
            load();
        }
 
        lang(int a)
        {
            if(a==0)return;
            load();
        }
 
        void init()
        {
            load();
        }
        void init(string pat)
        {
            path = pat;
            load();
        }
        void load()///функция загрузки из файла в w-строки names (хранит id слов) и words (хранит сами слова)
        {
            if(isLoad){return;}
            
            ifstream lg; 
                lg.open(path);
                if(!lg.is_open)exit(-1)
            int teeemp = 0;
 
            wstring file;
 
            int temp = 0;
            
            while (!lg.eof())
            {
                file+=lg.get();//переносит из файла в w-строковую переменную file содержимое файла
                
                temp++;
            } 
            
            for(int i = 0;i<temp;i++)
            {
                if(file[i]==';')size++;
            }
            
            lg.close(); 
    
            words = (wstring*)realloc(words,sizeof(wstring)*size); //выделение памяти для w-строк под кол-во слов
            names = (wstring*)realloc(names,sizeof(wstring)*size);
 
            bool temp1 = false,temp2=false; //флаги
            int temp3 = -1;
        
            for(int i = 0;i<size;i++)//разбор текста из w-строки file в w-строки words и names
            {
                //cout<<i<<endl;
                //cout<<i<<endl;
                for(int j = 0;file[temp3]!=L';';j++)
                {
                   
                   temp3++;
                    //cout<<" "<<temp3<<endl;
                    if(file[temp3]==L'{'){temp1=true;continue;}
                    if(file[temp3]==L'}'){temp1=false;continue;}
                    if(file[temp3]==L':'&&temp1==false){temp2=true;continue;}
                    //wcout<<temp3<<L' '<<file[temp3]<<endl;
                    if(temp1)
                        names[i]+=file[temp3];//собственно тут компилятор выдаёт ту ошибку (выяснил с помощью cout)
                    if(temp2)
                        words[i]+=file[temp3];
                    
                }   
                temp1=false;
                temp2=false;
                temp3++;
            }
        }
 
        wstring getWstring(wstring name)
        {
        
            for(int i = 0;i<size;i++)
            {       
                //тут проблемы нет, заполнял words и names в ручную и всё работало
            //ищет в names w-строку name, если не находит возвращает w-строку name
                
                if(names[i] == name){return words[i];}
 
            }
            return name;
        }
 
 
 
}Lang;
 
 
int main()
{
    
    wcout<<Lang.getWstring(L"test:test2")<<endl;
    wcout<<Lang.getWstring(L"test:test")<<endl;
}
Вот пример как должен выглядеть файл ru.txt

Code
1
2
{test:test}:work;
{test:test2}:test;
онлайн компилятор выводит всё как надо:

test
work

Добавлено через 14 минут
Мне не надо это делать средствами С++ и его std, я хочу сам разобраться + у меня уже был опыт с его std векторами, которые очень садили фпс, я лучше сам, или методами С
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2023, 12:18
Ответы с готовыми решениями:

Не работает клавиатура при попытке установки windows или попытке зайти в Bios настройки
Здравствуйте! Клавиатура не работает при попытке установки windows или попытки войти в настройки BIOS. Установка производится на...

Unity. При попытке установки позиции объекта на заданные координаты, z координата ведёт себя странно
При использовании функции Show() z координата меняется не на то значение. public void Show() { Vector3 nt = transform.position;...

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией Debug, то всё в порядке. При запуске же...

22
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
20.07.2023, 13:36
Maxsimilian560, wstring - это класс. Чтобы с объектом этого класса можно было работать, нужно, чтобы был вызван конструктор. В вашем коде вы просто выделили память для wstring, но конструкторы никто не вызывал. В таком виде оно работать не может. Даже если работает в каких-то частных случаях, то это случайность и рассчитывать на это нельзя.

Так что либо вам придется полноценным образом реализовывать в своем коде то, что и так делает vector (если уж решили делать все сами), либо вообще отказываться от wstring и делать все на массивах в стиле Си (проблем правда у вас от этого только прибавится).
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
20.07.2023, 13:46  [ТС]
А разве нет конструктора по умолчанию по типу
Code
1
class wstring{public:wstring(){}};
?
Да и к тому же я пытался заполнить строку пустой строкой
Code
1
wstring text = "";
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
20.07.2023, 13:51
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
А разве нет конструктора по умолчанию по типу
Есть, но malloc\realloc не вызывают контрукторы. Это функции из библиотеки Си, они ничего не знают про классы.

Добавлено через 1 минуту
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Да и к тому же я пытался заполнить строку пустой строкой
Речь о вызовах malloc\realloc. То, что вы где-то еще в коде писали
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
wstring text = "";
к проблеме отношения не имеет.
0
Заблокирован
20.07.2023, 17:37
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
ifstream lg;
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
wstring file;
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
file+=lg.get();
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
//переносит из файла в w-строковую переменную file содержимое файла
Вот это я понимаю перенос.
А файл наверное еще и в кодировке UTF-8 ?
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
21.07.2023, 10:19  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Речь о вызовах malloc\realloc. То, что вы где-то еще в коде писали
Сообщение от Maxsimilian560
wstring text = "";
к проблеме отношения не имеет.
Я пример привёл, я это в цикле делал

Цитата Сообщение от SmallEvil Посмотреть сообщение
А файл наверное еще и в кодировке UTF-8 ?
Какая разница какая кодировка? Байты те же, все переносятся в w-строку, всё работает корректно, а если использовать wifstream то при чтении кириллицы поток обрывается.
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
21.07.2023, 10:24
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Я пример привёл, я это в цикле делал
Это не решит описанную выше проблему.

Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Какая разница какая кодировка?
Ну вообще разница большая. Потому что wstring под виндой хранит UTF-16. А это не один байт, а два.
Т.е. даже если допустить, что в файле тоже лежит UTF-16, то для корректного чтения надо читать по два байта на один элемент wstring, а не по одному, как у вас.
Работать ваш код в этом аспекте будет только на символах из ASCII (т.е. проще говоря английский текст будет работать, остальные языки - нет).
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
21.07.2023, 11:55  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Ну вообще разница большая. Потому что wstring под виндой хранит UTF-16. А это не один байт, а два.
У меня файл в кодировке UTF-8, размер символа там 1 байт, использую wstring из-за русских символов.
Цитата Сообщение от DrOffset Посмотреть сообщение
Это не решит описанную выше проблему.
Тогда как можно с помощью realloc-а использовать конструктор?

Добавлено через 59 минут
Вместо realloc я использовал new, всё заработало, в консоль символы и с wifsteam и с ifstream выводятся корректно, то-есть русские, но при попытке вывести на экран выводятся странные символы. Я использую freetype для загрузки шрифтов, OpenGL, GLFW и GLAD, пробовал wifstream, результат одинаковый и с wifstream и с ifstream.
Так же попробовал сохранить файл в utf-16, теперь через символ сохраняется <0x00> и записывается вот так: <0x00>t<0x00>e<0x00>s<0x00>t<0x00>:<0x00 >t<0x00>e<0x00>s<0x00>t
а русские вообще не сохраняются, например символ т записался как B
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
21.07.2023, 12:16
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Так же попробовал сохранить файл в utf-16, теперь через символ сохраняется <0x00> и записывается вот так: <0x00>t<0x00>e<0x00>s<0x00>t<0x00>:<0x00 >t<0x00>e<0x00>s<0x00>t
а русские вообще не сохраняются, например символ т записался как B
Я вам выше написал об этом. Вы неправильно читаете из файла.

Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Тогда как можно с помощью realloc-а использовать конструктор?
Никак. realloc в принципе не совместим с нетривиальными классами.

Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
У меня файл в кодировке UTF-8, размер символа там 1 байт, использую wstring из-за русских символов.
Размер символа в UTF-8 от 1 до 4 байт. Русский символ занимает 2 байта.
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
21.07.2023, 12:18  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Я вам выше написал об этом. Вы неправильно читаете из файла.
А разве не через wifstream?
Цитата Сообщение от DrOffset Посмотреть сообщение
Размер символа в UTF-8 от 1 до 4 байт. Русский символ занимает 2 байта.
Как тогда читать русский?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
21.07.2023, 12:23
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Как тогда читать русский?
Либо читайте в std::string в UTF-8 (из файла в UTF-8, соответственно), а потом в коде делайте преобразование в UTF-16 и wstring
Либо сразу читайте UTF-16 из текста (естественно файл должен быть в UTF-16 при этом), но правильно, по 2 байта за раз.
1
Заблокирован
21.07.2023, 13:16
Лучший ответ Сообщение было отмечено Maxsimilian560 как решение

Решение

Maxsimilian560, utf8 записывается не побайтно а побитово. Почитайте про формат кодировки utf8.
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Так же попробовал сохранить файл в utf-16, теперь через символ сохраняется <0x00>
Ну естественно, вы же просматриваете файл обычным средством просмотра, блокнотом?
~65000 первых символов Юникода в кодировке UTF16 занимает два байта, английские буквы будут и символы ASCII будут иметь второй байт нулевым.

Вопрос как правильно читать это, файл в кодировке (utf8, utf16) в wstring и еще умудрится правильно вывести (кстати куда ?) ?


Небольшой пример конвертации UTF8 строки в широкую в ручном режим, под Windows.
В примере считывается файл с кодировкой cp866, DOS кодировка с русскими символами.
Конвертируется во внутренний тип UTF16 (наверное, нужно доэксперементировать, не UCS2 ли там).
И конвертируется в UTF8 для записи в файл.
Чтение легко заменяется на UTF8.
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
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;
 
// Convert a wide Unicode string to an UTF8 string
std::string utf8_encode(const std::wstring &wstr)
{
    if( wstr.empty() ) return std::string();
    int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL);
    std::string strTo( size_needed, 0 );
    WideCharToMultiByte                  (CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL);
    return strTo;
}
 
// Convert an CP866 string to a wide Unicode String
std::wstring cp866_decode(const std::string &str)
{
    if( str.empty() ) return std::wstring();
    int size_needed = MultiByteToWideChar(866, 0, &str[0], (int)str.size(), NULL, 0);
    std::wstring wstrTo( size_needed, 0 );
    MultiByteToWideChar                  (866, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
    return wstrTo;
}
 
int main(){
    std::string cp866_str;
    ifstream fin("cp866.txt");
    getline(fin, cp866_str);
    std::wstring utf16_str = cp866_decode(cp866_str); // UCS2 ???
    std::string utf8_str = utf8_encode(utf16_str);
    std::ofstream("utf8.txt") << utf8_str;
}
1
Заблокирован
21.07.2023, 13:18
Сами тестируемые файлы :
Вложения
Тип файла: rar Convert UTF.rar (195 байт, 0 просмотров)
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
21.07.2023, 14:36  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
еще умудрится правильно вывести (кстати куда ?)
В консоль разумеется.
Цитата Сообщение от SmallEvil Посмотреть сообщение
Небольшой пример конвертации UTF8 строки в широкую в ручном режим, под Windows.
Спасибо, попробую.
0
Заблокирован
21.07.2023, 17:25
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
В консоль разумеется.
Нууу. Если она каким то образом готова к работе с Юникодом и знает тип символа, то можно и как у вас.
Но я бы все же указал это вручную, как это под Unix я не знаю, не было необходимости.
Под Win, могу показать. Консоль на ввод и вывод Юникода на OS Windows нужно настраивать. У вас это не сделано.
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
23.07.2023, 11:58  [ТС]
У меня пока что Windows 10, консоль Sublime Text 4.
Цитата Сообщение от SmallEvil Посмотреть сообщение
C++
1
std::string utf8_str = utf8_encode(utf16_str);
Разве string не занимает 1 байт? Да, выше говорили что UTF_8 тоже занимает 1 байт, в английском, но мне нужен русский текст, который занимает уже 2 байта, и мне надо чтоб он был именно в формате wstring, по другому freetype не сможет загружать русские буквы

Добавлено через 2 минуты
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
но при попытке вывести на экран выводятся странные символы.
Повторю, мне не надо вывести в консоль, мне надо на экран.
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
23.07.2023, 12:12
Лучший ответ Сообщение было отмечено Maxsimilian560 как решение

Решение

Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
Разве string не занимает 1 байт? Да, выше говорили что UTF_8 тоже занимает 1 байт, в английском, но мне нужен русский текст, который занимает уже 2 байта
В Utf-8 русский символ кодируется двумя байтами.
Т.е. это будет просто два байта друг за другом на один символ.
Так не получится соответствия "индескируемый элемент string" -- "символ" (т.е. начало симола русского языка в string - это каждый второй байт), но это далеко не всегда нужно, поэтому string часто используют для хранения UTF-8.

Здесь вот я объяснял как это устроено: https://www.cyberforum.ru/post12577814.html

Добавлено через 4 минуты
Цитата Сообщение от Maxsimilian560 Посмотреть сообщение
std::string utf8_str = utf8_encode(utf16_str);
Если следовать моему ответу в посте #11, то вам наоборот нужна функциональность
C++
1
std::wstring utf16_str = utf8_decode(utf8_str)
которой в коде в посте 12 нет. Но по аналогии вы легко можете сделать ее сами.
1
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
23.07.2023, 12:41  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Если следовать моему ответу в посте #11, то вам наоборот нужна функциональность
Я тоже так подумал, теперь у меня выводятся иногда русские символы, хотя они не соответствуют тем что я написал, чаще всего рисуется знак вопроса.
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
23.07.2023, 12:46
Maxsimilian560, актуальный код покажете (полностью)?
0
0 / 0 / 0
Регистрация: 29.04.2022
Сообщений: 43
23.07.2023, 13:12  [ТС]
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
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <iostream>
#include <fstream>
#include <malloc.h>
 
using namespace std;
 
 std::wstring cp866_decode(const std::string &str)
{
    if( str.empty() ) return std::wstring();
    int size_needed = MultiByteToWideChar(866, 0, &str[0], (int)str.size(), NULL, 0);
    std::wstring wstrTo( size_needed, 0 );
    MultiByteToWideChar                  (866, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
    return wstrTo;
}
 
 
 
 
class lang
{
    string path = "ru.txt";
 
 
    wstring *words = (wstring*)malloc(sizeof(wstring));
    wstring *names = (wstring*)malloc(sizeof(wstring));
 
 
 
 
    int size = 0;
 
    bool isLoad=false;
 
 
public:
        lang()/////конструкторы
        {       
                    load();     
        }
 
        lang(string pat)
        {
            path = pat;
            load();
        }
 
        lang(int a)
        {
            if(a==0)return;
            load();
        }
 
        void init()
        {
            load();
        }
        void init(string pat)
        {
            path = pat;
            load();
        }
        void load()///функция загрузки из файла в w-строки names (хранит id слов) и words (хранит сами слова)
        {
            if(isLoad){return;}
            
            ifstream lg; 
                lg.open(path);
                if(!lg.is_open)exit(-1)
            int teeemp = 0;
 
            string file2;
 
            int temp = 0;
            
            while (!lg.eof())
            {
                file+=lg.get();//переносит из файла в w-строковую переменную file содержимое файла
                temp++;
            } 
            wstring file = cp866_decode(file2);
            for(int i = 0;i<temp;i++)
            {
                if(file[i]==';')size++;
            }
            
            lg.close(); 
    
            words = (wstring*)realloc(words,sizeof(wstring)*size); //выделение памяти для w-строк под кол-во слов
            names = (wstring*)realloc(names,sizeof(wstring)*size);
 
            bool temp1 = false,temp2=false; //флаги
            int temp3 = -1;
        
            for(int i = 0;i<size;i++)//разбор текста из w-строки file в w-строки words и names
            {
                //cout<<i<<endl;
                //cout<<i<<endl;
                for(int j = 0;file[temp3]!=L';';j++)
                {
                   
                   temp3++;
                    //cout<<" "<<temp3<<endl;
                    if(file[temp3]==L'{'){temp1=true;continue;}
                    if(file[temp3]==L'}'){temp1=false;continue;}
                    if(file[temp3]==L':'&&temp1==false){temp2=true;continue;}
                    //wcout<<temp3<<L' '<<file[temp3]<<endl;
                    if(temp1)
                        names[i]+=file[temp3];//собственно тут компилятор выдаёт ту ошибку (выяснил с помощью cout)
                    if(temp2)
                        words[i]+=file[temp3];
                    
                }   
                temp1=false;
                temp2=false;
                temp3++;
            }
        }
 
        wstring getWstring(wstring name)
        {
        
            for(int i = 0;i<size;i++)
            {       
                //тут проблемы нет, заполнял words и names в ручную и всё работало
            //ищет в names w-строку name, если не находит возвращает w-строку name
                
                if(names[i] == name){return words[i];}
 
            }
            return name;
        }
 
 
 
}Lang;
 
 
int main()
{
    
    wcout<<Lang.getWstring(L"test:test2")<<endl;
    wcout<<Lang.getWstring(L"test:test")<<endl;
}
Добавлено через 3 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
(полностью)?
Если надо с выводом на экран, то могу и с ним, но он довольно громоздкий
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.07.2023, 13:12
Помогаю со студенческими работами здесь

Подключение через vpn и RDP - странно работает, нужна помощь
Здравствуйте. Опишу свою проблему. У меня дома стоит роутер Zyxel Keenetic Lite. В него входит шнур моего провайдера Интернета. От...

Почему выдается ошибка при попытке изменить символ в строке?
Здравствуйте! Подскажите пожалуйста почему при попытке присвоить символу одной строки символ другой появляется ошибка - Невозможно...

Ссылка на неразрешенный внешний символ - при попытке использования FMOD API
Всех приветствую я новичок в программировании на C++, мой основополагающий язык программирования - LUA В ходе работы с проектом...

Странно работает отладчик при выполнении команд свойства класса
Добрый вечер, у меня как то странно себя ведет отладчик при работе со свойством класса. У меня есть класс Fibs, с статическим свойством...

Странно работает метод StartsWith при запросе к БД SQLite c Entity Framework
Всем привет, помогите кто может. Есть проект c# windows form с entity framework code first. После смены бд Mysql на SQLite начались...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru