• Есть ли какая нибудь функция из встроенных библиотек в с++ для проверки является ли строка числом?

    @res2001
    Developer, ex-admin
    Сконвертируйте строку в число с помощью strtod() (или любой функции из этой серии) и проанализируйте возвращаемое значение и значение второго параметра. По этой информации можно сделать любые нужные выводы.

    Еще есть isdigit() - но она проверяет символ только на цифры, а число может быть разным - например начинаться со знака или если дробное, то в нем будет разделитель дробной части, который может быть первым. Но в простых случаях ее может быть достаточно.
    Ответ написан
    Комментировать
  • Что означает traits_type::eof()?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    type_traits - это имя параметра шаблона, который задан в родительском классе streambuf.

    type_traits::eof() - возвращает код конца файла, для текущего параметра шаблона.

    Вся эта шаблонная магия взялась для того, чтобы можно было читать из файла или char, или wchar, или еще черт знает что, в зависимости от кодировки. Раз читаемые символы могут быть какими угодно, то и код конца файла нужен свой собственный для разных типов символов. Поэтому eof() является частью type_traits в streambuf.
    Ответ написан
    Комментировать
  • Хорошие курсы по бд(возможно платные)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Курсы бесполезны, они приносят пользу только их авторам. Читайте учебники и документацию вашей СУБД.
    Ответ написан
    2 комментария
  • Почему неправильно выполняется цикл?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Скажите пожалуйста ... как сделать чтобы все работало как надо?

    Чтобы работало как надо, надо разобраться, что делает eof() и в каком месте его надо писать. Подсказка: в начале пустого файла eof() возвращает false.
    Ответ написан
    Комментировать
  • Возможно ли так что проект в visual studio "сломался"?

    maaGames
    @maaGames
    Погроммирую программы
    Научись использовать любую систему контроля версий (git, svn, хоть какую). Тогда всегда на 100% будешь уверен, изменилось "что-то не то" в коде или нет. Т.е. если под "откатил" подразумевается Ctrl+Z, то скорее всего ты или не всё откатил или слишком много откатил.
    Удали из папки с проектом все временные и генерируемые файлы. 'Rebuild All' может не всегда помогать, поэтому лучше вручную все созданные папки и файлы удалить.
    Ответ написан
    Комментировать
  • Почему не правильно работает диффизное освещение?

    maaGames
    @maaGames
    Погроммирую программы
    Почему вершины модели лежат в плоскости XY и нормали направлены по оси Y, а не по Z?
    Ответ написан
    1 комментарий
  • Встречались ли вам овер-инженеры среди джунов и миддлов? Как надо с такими поступать?

    DevMan
    @DevMan
    человек вообще ни у чом не уиноват.
    просто в компании не выстроены (или не правильно выстроены) бизнес-процессы.

    человек с горящими глазами и скилованный - офигенный актив. прост нужно этот энтузиазм направить в нужное русло. и это элементарно решается административными способами, если между собой разобраться не удаётся.
    Ответ написан
    10 комментариев
  • У меня есть отрисовка рандомных примитивов (кубов), как мне сделать так, чтобы они не заходили в друг друга при отрисовке?

    > как мне сделать так, чтобы они не заходили в друг друга при отрисовке?
    не позиционировать их при отрисовке так, чтобы они заходили друг в друга.

    Как их не позиционировать так? Ну если это что-то движущееся, то реализуйте определение столкновений и соответствующую физику. Если они статичны, и дело только в генерации - ну реализуйте простейшую сетку и не заполняйте повторно уже занятые ячейки. Тут без конкретной цели вам сложно что-то подсказать.
    Ответ написан
    Комментировать
  • Как изучить C++?

    @DimaIs
    Сложно посоветовать что-то конкретное, люди разные, но поведаю вам свой путь, ибо тоже начинал с с++.
    Изучил основы на сайте stepik (Ссылка на курс), курс от Яндекса и ВШЭ, его ведет приятный мужик, говорит кратко и по делу. Темы в основном простые (базовый синтаксис), а вот над некоторыми задачами пришлось попотеть не один день, иногда полностью отчаиваясь, но через неделю возвращаясь. В итоге это позволило мне собрать какое-никакое представление о том, что есть математическое мышление в купе ЯП. После этого прочел книгу Стивена Прата (Ссылка на книгу), длинное, порой сложное, но очень хорошо расписанное от А до Я чтиво. После него взялся за Страуструпа (Ссылка на книгу). Если вы дошли до этого пункта, то отсюда можно плясать в практически любом направлении - десктоп, геймдев, просто графика, computer vision, ИИ, все что угодно. Благо, материалов по темам достаточно.
    Ответ написан
  • Как изучить C++?

    Stalker_RED
    @Stalker_RED
    ffa11c5561b6ca472680216ac54dbccb.jpg

    Начните лучше с какого-нибудь дружелюбного языка, вроде паскаля или пайтона (только не с js, с него потом сложно переучиваться). И только после того как напишете десяток hello world, калькуляторов, астрологических календарей или тудушек - переключайтесь на плюсы. Плюсы вообще клевые, много узнаете о внутрянке, но начинасть с них тяжело.
    Ответ написан
    1 комментарий
  • Почему выводится ошибка "необработанное исключение по адресу"?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    matrix[m][n] вместо matrix[i][j] в поиске элемента это выход за границу массива.

    for (int i = m; i < m; i--) //хм
    Ответ написан
    Комментировать
  • Почему выводится ошибка "необработанное исключение по адресу"?

    bogolt
    @bogolt
    Про неверные индексы матрицы тут вам уже сказали, добавлю что вы не очищаете за собой память. На каждый выделенный блок памяти нужно вызвать delete x[];
    Ответ написан
    Комментировать
  • Почему выводится ошибка "необработанное исключение по адресу"?

    Biomorphix
    @Biomorphix Автор вопроса
    Наконец-то добрался до ноута.
    Понял свои ошибки, разобрался - теперь программа работает. Спасибо!
    Вот конечный код программы, если кому интересно:

    /*Cоставить ф-цию нахождения первого (first) и последнего (last) по счету отрицательного элемента в столбце матрицы.
    Используя эту функкцию, в матрице А(4,6) найти сумму произведения first*last для всех столбцов, а в матрице В(6,5) произведение 
    сумм first*last для четных столбцов */
    
    
    
    #include <iostream>
    using namespace std;
               
    
     void find_first_last(){
               int m, n, first, last, sum = 0;
               cout << "Введите размер матрицы \n\n\n";
               cin >> m >> n;
               /*Создание динамического массива*/
               int **matrix = new int*[m];
               for (int i = 0; i < m; i++)
                          matrix[i] = new int[n];
    
               
               
               /*Заполнение матрицы*/
               cout << "Заполните матрицу \n\n\n";
               for (int i = 0; i < m; i++){
               for (int j = 0; j < n; j++) cin >> matrix[i][j];
    
               }
    
               /*Поиск первого и последнего отрицательного элементов в столбцах*/
               for (int j = 0; j < n; j++){
                          int fin = 0;
                          cout << endl;
    
                          //поиск первого отрицательного элемента
                          for (int i = 0; i < m; i++){
                                     if (matrix[i][j] < 0) {first = matrix[i][j]; fin = i;}
                                                else first = NULL;
                                                
                                     if (first){
                                                cout << "Первый отрицательный элементв в столбце " << j << " равен " << first << endl;
                                                break;
                                     }                                 
                                     
                          }
                          
                          if (!first) cout << "Отрицательных элементов в столбце "<< j <<" нет\n";
    
                          //поиск последнего отрицательного элемента
                          for (int i = m - 1; i > fin; i--){
    
                                     if (matrix[i][j] < 0) last = matrix[i][j]; 
                                                else last = NULL;
                                     
                                     if (last) 
                                                {
                                                cout << "Последний отрицательный элементв в столбце " << j << " равен " << last << endl;
                                                break;
                                                }
                          }
    
                          /*
                          Если количество столбцов четное, то вычислять сумму всех столбцов, если нет - то только четных. 
                          Из условия А(4,6), а В(6,5) - закономерность.
                          */
    
                          if (n % 2 == 0)           sum += last*first;
                                     else if ((j + 1) % 2 == 0) sum += last*first;
                                     
               }
               
               cout << sum;
    }
    
    int main(){
    
               setlocale(LC_ALL, "Russian");
    
               find_first_last();
               system("pause");
    
    
    }
    Ответ написан
    Комментировать
  • Как добавить в один вектор элемент из другого вектора под определенным индексом?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Что пытается сделать ваш код - совершенно непонятно. Подозреваю, что ассерт может происходить из-за кривых прочитанных из файла значений Index. с26451 - это предупреждение, а не ошибка, но по одному номеру сказать сложно. Приведите весь текст предупреждения. Попробуйте тип Index поменять на size_t, может уберет его.

    Ответ на вопрос в заголовке - vector::insert

    Если хотите добавить x после k элементов в вектор a, то сделайте
    a.insert(a.begin()+k, x);
    Ответ написан
    7 комментариев
  • Почему функция не видит public переменную из другого класса?

    Adamos
    @Adamos
    Философы древности собирали своих учеников и беседовали, позволяя им задавать вопросы и тем приобретать мудрость.
    Но С++ учится не так.
    Ответ написан
    Комментировать
  • Почему функция не видит public переменную из другого класса?

    @romancelover
    программист C++ под Linux
    mWindow определён в классе Window, а обращаются к нему в другом классе Camera, в котором члена mWindow нет. Как компилятор узнает о связи между классами Camera и Window, чтобы один использовал члены другого?
    Можно обратиться к нему в том случае, если Camera будет наследником Window (но в данной ситуации это скорее всего не нужно), или в Camera будет член типа Window или указатель на него (Window* _window) тогда _window->mWindow будет допустимо.
    Ответ написан
    Комментировать
  • Почему функция не видит public переменную из другого класса?

    1. Не переменная, а поле.
    2. К полю можно обратиться только на экземпляре класса
    Ответ написан
    Комментировать
  • Почему функция не видит public переменную из другого класса?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что это не переменная, а свойство и оно не определено вне конкретного элемента класса.
    Ответ написан
    Комментировать
  • Можно ли самому изучить программирование логических контроллеров?

    gbg
    @gbg
    Любые ответы на любые вопросы
    ПЛК программируются на одном из стандартных языков

    С и С++ в этом списке нет, есть подобия

    Знания и методы программирования, которые пригодны для программирования ПК, для ПЛК не годны, там своя специфика.

    Связано это с тем исторически, ПЛК заменили собой релейные схемы. А релейная схема работает не в виде исполнения последовательности инструкций (как работает ПК), а в виде переходов между состояниями (читать в вики "автомат с конечным числом состояний"). И для того, чтобы перенести все наработки старой доброй релейной логики (и разработчиков), ПЛК сделали удобным для такого программирования.

    Главное, что нужно для этой разработки - практика на реальном железе, то есть стенды, контроллеры и софт для программирования. Чисто теоретически, в каких-то симуляторах можно научиться только пониманию специфики, но вот отладка/наладка - это только реальное железо с реальными глюками.

    Цифровая электроника здесь стоит не на первом месте, в ПЛК с точки зрения электроники никто серьезно не полезет (потому что убытки от поехавшего крышей ПЛК могут легко и многократно перекрыть стоимость замены сдохшего). Достаточно обычной науки о контактах и понимания закона Ома.

    Чтобы прикинуть свои силы, попробуйте прямо здесь набросать, как вы при помощи ПЛК будете автоматизировать работу простого советского воздушного компрессора, который кто-то захотел подключить к SCADA-системе в своем гараже.

    -какие нужны датчики
    -какие нужны исполнительные механизмы
    -как обеспечить безопасную работу машины при поехавшем крышей ПЛК
    Ответ написан
    Комментировать