Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509

С++ с нуля

20.02.2022, 23:08. Показов 7732. Ответов 101

Студворк — интернет-сервис помощи студентам
Всем привет!
не кидайте тапками )
Изучаю Си и Си++ с нуля, книга Стивен Прата, и некоторые примеры набираю в Visual Studio, создал файл с расширением .с
Залез в компилятор и установил старый, msvc, но это не прокатывает.

Не компилируется, хотя в книге написано должно C90

int m = 3;
int a[m];

выходит ошибка.
.
Как посоветуете изучать си и си++?
Какой стандарт выбрать?

Всем удачи и здоровья!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2022, 23:08
Ответы с готовыми решениями:

Сравнить два массива на чисела: больше нуля, меньше нуля и равно нулю
С помощью множества сравнить два массива на чисел: больше нуля, меньше нуля и равно нулю.

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

Посоветуйте книгу или статью по OpenGL с нуля (на языках любых кроме Delphi). С нуля
Посоветуйте книгу или статью по OpenGL с нуля (на языках любых кроме Delphi). С нуля. Я сколько не побывал искать, находил и не могу...

101
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
22.02.2022, 22:34  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Алексей1153 Посмотреть сообщение
но лучше всё же вектор
не дошел еще )
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
22.02.2022, 22:40
Цитата Сообщение от tahir_ Посмотреть сообщение
не дошел еще )
Шире шагай
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.02.2022, 01:28
Цитата Сообщение от Наталья8 Посмотреть сообщение
Сишное выделение памяти быстрее
ты это сам придумал?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
23.02.2022, 07:09
Цитата Сообщение от SmallEvil Посмотреть сообщение
К чему эти разговоры ?
К тому, что в 95% случаев "я пишу на Си" равно "я пишу на плюсах, отказавшись от foreach циклов, шаблонов, constexpr функций и прочих плюшек, которые мой Си-компилятор не поддерживает". Еще четыре процента отведите на VLA и FLA с которых началось это обсуждение и которые де-факто поддерживаются в C++ как расширение. И возможно, где-то там есть один процент людей, которым реально нужна какая-то ну очень экзотическая особенность Си, которая ну никак в плюсах не заводится. Только, этот один процент никто не видел.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.02.2022, 07:49
Цитата Сообщение от Renji Посмотреть сообщение
де-факто поддерживаются в C++ как расширение
нет, не поддерживаются.

Кликните здесь для просмотра всего текста
в соответствии с определением понятия:
Де-фа́кто (лат. de facto — «на деле», «фактически») — латинское выражение, которое используется для обозначения действительности происходящего, не подкрепленной юридически.
в действительности не все топовые компиляторы с++ поддерживают vla.
следовательно, исходное утверждение некорректно.
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
23.02.2022, 10:21  [ТС]
Термины пошли, я как в лесу )
иногда кажется на ассемблере было проще)))
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
23.02.2022, 12:44
Суть в том, что я не могу спросить на форуме, как мне привинтить кусок раскодированного звука,
из FFMPEG на SFML. Мне ни кто не ответит.
Но советчиков, как код форматировать, полно.
0
фрилансер
 Аватар для Алексей1153
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
23.02.2022, 12:49
Цитата Сообщение от Наталья8 Посмотреть сообщение
я не могу спросить на форуме
можешь
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
24.02.2022, 01:52
https://www.cyberforum.ru/atta... 1645656714
Вложения
Тип файла: mp4 final_file(31).mp4 (1.51 Мб, 25 просмотров)
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
24.02.2022, 05:03
Цитата Сообщение от Renji Посмотреть сообщение
Еще четыре процента отведите на VLA и FLA с которых началось это обсуждение и которые де-факто поддерживаются в C++ как расширение.
Нет, конечно.

Некоторые компиляторы С++ продерживают некую фичу, которая косметически выглядит как VLA. Т.е. чисто на уровне синтаксиса, если один глаз закрыть, а другой прищурить, эта нестандартная С++ фича чем-то отдаленно напоминает VLA.

Но семантически такие массивы в С++ ведут себя совсем по другому. Это не VLA. Ни один компилятор С++ не поддерживает VLA, ни "де факто", ни как либо еще.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
24.02.2022, 12:17
Конечно жописто всё. недельку поковыряюсь, может запоёт.

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
for (int i = 0; i < 250; ++i){
            AVFrame *output_frame;// Грузиться из буфера FIFO  
    const int frame_size = FFMIN(av_audio_fifo_size(fifo), 1152);// Количество отсчетов на канал в аудиокадре. c->frame_size
 
            // Создайте новый фрейм для хранения аудиосэмплов.
            if (!(output_frame = av_frame_alloc())) {
                printf(" Could not allocate output frame (load_encode_and_write)\n");
                    }
// <------- output_frame->nb_samples Регистрирует количество восьмибайтных блоков 32 бита на два (стерео) (1024  или 1152)
            output_frame->nb_samples = frame_size;// ============== number of audio samples(per channel) described by this frame
            output_frame->channel_layout = 3;
            output_frame->format = AV_SAMPLE_FMT_S16;
            output_frame->sample_rate = 44100;// out_sample_rate 44100 (входной)
 
                    if ((av_frame_get_buffer(output_frame, 0)) < 0) {
                        printf("Could not allocate output frame samples \n");//<<<< ===== Здесь ошибка была утечка памяти ===
                        av_frame_free(&output_frame);
                    }
                    if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) {
                        fprintf(stderr, "Could not read data from FIFO\n");
                        av_frame_free(&output_frame);
                    }
            sf::Int16 *dbl = *(sf::Int16 **)output_frame->data;
                    
                    for (int i = 0; i < output_frame->nb_samples / 2; i ++){
                                    samples.insert(samples.end(), *dbl++);  // добавили элемент в конец
                            }
                    av_frame_free(&output_frame);
                            }
            // load something into the sound buffer...
                buffer.loadFromSamples(&samples[0], samples.size(), 2, 32000);
                //if (!buffer.loadFromFile("D:\\sound.wav"))printf(" ****ed bull");
                sound.setBuffer(buffer);
                sound.play();
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2022, 14:05
Цитата Сообщение от Алексей1153 Посмотреть сообщение
я не могу спросить на форуме
можешь
Наталья8, Ну ясно же, что имелось ввиду : Можешь спросить, создав новую тему.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
25.02.2022, 13:52
https://www.cyberforum.ru/atta... 1645786316

C++
1
2
3
4
5
sf::Int16 *dbl = *(sf::Int16 **)output_frame->data;
        for (int i = 0; i < frame_size*2; ++i){// Вот это выравнивание четыре байта, это sf::Int16 (четырёх байтный вектор)
                //samples.insert(samples.end(), *dbl);  // добавили элемент в конец    
                samples.push_back(*dbl);
                            ++dbl; }
Вложения
Тип файла: mp4 final_file(39).mp4 (750.5 Кб, 10 просмотров)
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
25.02.2022, 16:57
Двухбайтный вектор. Звёздочки, только методом втыка.
Понять это невозможно. frame_size*2 это два канала стерео.
0
 Аватар для YUEN HOIFEF
252 / 185 / 47
Регистрация: 31.01.2021
Сообщений: 934
25.02.2022, 17:32
Наталья8, Странно как-то все это. Про сэмплы...
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
25.02.2022, 18:04
Какие семплы. вектор так называеться.
сам еле вьезжаю. Но красиво.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
std::vector<sf::Int16> samples = {};
 
//////=============
 
sf::Int16 *dbl = *(sf::Int16 **)output_frame->data;
for (int i = 0; i < frame_size*m_Audio_CodecCtx->channels; ++i){// Вот это выравнивание, это sf::Int16 (двух байтный вектор)
                //samples.insert(samples.end(), *dbl);  // добавили элемент в конец    
                samples.push_back(*dbl);
                            ++dbl; }
                    av_frame_free(&output_frame);
                         }
                /// printf(" === %d", m_Audio_CodecCtx->channels);
        // load something into the sound buffer...
buffer.loadFromSamples(&samples[0], samples.size(), m_Audio_CodecCtx->channels, m_Audio_CodecCtx->sample_rate);
                //if (!buffer.loadFromFile("D:\\sound.wav"))printf(" ****ed bull");
                sound.setBuffer(buffer);
                sound.play();
Добавлено через 2 минуты
m_Audio_CodecCtx->channels... (моно - стерео)

Добавлено через 3 минуты
Прилетает фрейм, считываеться в вектор.
SFML читает вектор.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
17.11.2023, 01:15
alexu_007,
С++ с нуля
С++ с нуля
Всё ещё жду реакции, сколько можно-то??? 2 года почти прошло!
0
0 / 0 / 0
Регистрация: 18.11.2023
Сообщений: 4
18.11.2023, 22:21
Цитата Сообщение от tahir_ Посмотреть сообщение
Всем привет!
не кидайте тапками )
Изучаю Си и Си++ с нуля, книга Стивен Прата, и некоторые примеры набираю в Visual Studio, создал файл с расширением .с
Залез в компилятор и установил старый, msvc, но это не прокатывает.

Не компилируется, хотя в книге написано должно C90

int m = 3;
int a[m];

выходит ошибка.
.
Как посоветуете изучать си и си++?
Какой стандарт выбрать?

Всем удачи и здоровья!
https://www.youtube.com/@SimpleCodeIT ссылка на дядю в ютубе он оооооооооочень круто все разжовывает по с++ и даже рисует графически для понятия. пролистнешь вниз там найдешь видео по с++. у него миллиоы просмотров по с++. Совет выбирай с++. С - язык старый , да крутой , но с++ гораздо более используемый , удобнее и ОГРОМНОЕ КОЛВО ПРИЧИн которые не буду называть.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
19.11.2023, 00:12
Цитата Сообщение от Arthur2204 Посмотреть сообщение
круто все разжовывает
Цитата Сообщение от Arthur2204 Посмотреть сообщение
ОГРОМНОЕ КОЛВО ПРИЧИн
Чё это тебя так проглючило??
0
фрилансер
 Аватар для Алексей1153
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
19.11.2023, 07:19
Цитата Сообщение от Arthur2204 Посмотреть сообщение
ссылка на дядю
если видишь на ютубчике в коде строку using namespace std, можешь смело обходить стороной.
А вот реально крутой преподаватель живёт тут https://www.youtube.com/@tilir
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2023, 07:19

Для матрицы подсчитать количество элементов, меньших нуля, ровных нулю и больших нуля
Для заданной матрицы A подсчитать количество элементов, меньших нуля, ровных нулю и больших нуля. Для вывода результатов использовать...

Посоветуйте книгу или статью по DirectX с нуля (на языках любых кроме Delphi). С нуля
Посоветуйте книгу или статью по DirectX с нуля (на языках любых кроме Delphi). С нуля. Я сколько не побывал искать, находил и не могу...

Какая вероятность того, что сумма этих чисел будет больше нуля, а произведение меньше нуля ?
С отрезка наугад взяли два числа. Какая вероятность того, что их сумма будет больше нуля, а произведение меньше нуля ?

Двухмерный массив. Вычислить количество строк, сумма элементов которых меньше нуля, равна нулю или больше нуля
В двухмерном массиве вычислить количество строк, сумма элементов которых меньше нуля, равна нулю или больше нуля. Добавлено через 7...

Расстояние от нуля экрана до нуля документа
в документе одни координаты, а при открытии окон другие... как бы выяснить разницу, состоящую в толщине toolbar'a браузера и title окна,...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru