Задать вопрос
  • Как обрезать заголовок в https ответе?

    myjcom
    @myjcom Куратор тега C++
    в boost практически аналогично
    #include <iostream>
    #include <algorithm>
    #include <iterator>
    using namespace std;
    
    int main()
    {
        char buf[1500]{"HTTPS/1.1 200 OK\nContent-Type: \
                        application/json; charset=utf-8\n\
                        Content-Length: 48\
                        Connection: Close{\"DATA\": {\"ERROR\":\
                         \"ANY USER IS LOGIN\"}}"};
        auto bs{ find(begin(buf) , end(buf)  , '{' ) };
        auto es{ find(rbegin(buf), rend(buf) , '}' ) };
        copy(bs, es.base(), ostream_iterator<char>(cout));
    }

    {"DATA": {"ERROR": "ANY USER IS LOGIN"}}
    Ответ написан
    4 комментария
  • Как задать свойство класса экземпляром другого класса, если его значения не известны при инициализации?

    myjcom
    @myjcom Куратор тега C++
    Значения по умолчанию
    class Point
    {
        double x_coord;
        double y_coord;
      public:
        Point(double x = {}, double y = {}) : x_coord{x}, y_coord{y}
        {
        }
    };
    
    class Square
    {
        Point* center_pt;
        double size;
      public:
        Square(double x = {}, double y = {}, double sz = {1}) 
         : center_pt{new Point(x / sz, y / sz)}, size{sz}
        {
        }
        ~Square(){ delete center_pt; }
    };
    
    int main()
    {
      Square sq(10, 10, 2);
      Square sq2();
    }
    Ответ написан
    4 комментария
  • Где можно почитать про линейные алгоритмы( Язык Си)?

    myjcom
    @myjcom
    ...
    void swap(int& a, int& b)
    {
      int c = a;
      a = b;
      b = c;
    }

    где можно дополнительно почитать

    пригодится:
    Algorithms in C, Third Edition / Фундаментальные алгоритмы на C (3-я редакция)
    Год: 2003
    Автор: Sedgewick R. / Седжвик Р.
    Издательство: DiaSoft
    ISBN: 5-93772-083-0, 0-201-31452-5, 0-201-31663-3
    Язык: Русский
    Ответ написан
    Комментировать
  • Где практиковаться в низкоуровневом программировании и что изучать?

    myjcom
    @myjcom
    Английский и https://github.com/gurugio/lowlevelprogramming-uni...
    Железо - на что денег хватит.
    Микроконтроллеры и все сопутствующее им стоит денег и немалых, если не оставаться на уровне фан проектов и мигания светодиодом. Если просто поиграть - хватит и набора Arduino или Raspberry. Что там будет - Python, C, JavaScript без разницы.
    Системное программирование - одна из самых трудозатратных областей. В части изучения в том числе. Возможно "повтыкав" в какой нибудь HOWTO do Linux kernel development или Windows Driver Kit documentation или ARM System Developer's Guide вам вообще разонравится эта мысль.
    Ответ написан
    2 комментария
  • Реализация класса "Строка", помощь в написании программы, правильно ли я делаю?

    myjcom
    @myjcom Куратор тега C++
    Не...
    порядок инициализации в конструкторе
    protected:
      char* Str;  // first
      int Length; // second


    Тогда или так
    String::String(const char* ptr)
      : Str(new char[strlen(ptr) + 1]), Length(strlen(ptr) + 1)
    {
      strcpy(Str, ptr);
    }
    
    String::String(const String& t)
      : Str(new char[t.Length]), Length(t.Length)
    {
      strcpy(Str, t.Str);
    }

    Или поменять местами члены.
    protected:
      int Length;  // first
      char* Str;   // second

    лучше конечно ориентироваться/подглядеть на/в STL
    https://ru.cppreference.com/w/cpp/string/char_traits
    https://ru.cppreference.com/w/cpp/string/basic_string

    hex_string
    только символы '0', '1', '2', '3', '4', '5','6', '7', '8', '9', 'A, 'B', 'C', 'D', 'E', 'F'.

    //...
    struct hex_str_traits
    {
      static bool is_hex_chars(const char* s)
      {
        auto size{ strlen(s) };
        for (auto idx{ 0 }; idx < size; ++idx)
        {
          if (!in_range(s[idx], '0', '9') && !in_range(s[idx], 'A', 'F'))
            return false;
        }
        return true;
      }
      static bool in_range(const int& value, const int& a, const int& b)
      {
        return a <= value && value <= b;
      }
    };
    //...
    
    class hex_string : public String
    {
    //...
    public:
      hex_string(const char* s);
    //...
    };
    //...
    hex_string::hex_string(const char* s) 
      : String( (hex_str_traits::is_hex_chars(s) ? s : "") )
    {
    }
    //...

    Ответ написан
    Комментировать
  • Автодополнение в Visual Studio 2017 (C++)?

    myjcom
    @myjcom Куратор тега C++
    С чем это связано? Недоработка разработчиков?

    Средства->Параметры->Текстовый редактор->С/C++->Дополнительно->IntelliSense
    агрессивная фиксация списка членов поставить в True
    по умолчанию стоит False
    Prt Sc
    5ba695a52df42189786545.jpeg
    Ответ написан
    2 комментария
  • Как задать размеры матрицы (вектора векторов) в C++ после ее создания?

    myjcom
    @myjcom Куратор тега C++
    Matrix
    #include<iostream>
    #include<vector>
    using namespace std;
    
    template<typename T>
    class Matrix
    {
      size_t cols;
      size_t rows;
      vector<vector<T>> m_matrix;
    public:
      Matrix(size_t c, size_t r) : cols{c}, rows{r}, m_matrix{}
      {
        m_matrix.reserve(cols);
        for(auto i{0}; i < cols; ++i)
        {
          m_matrix.emplace_back(vector<T>(rows));
        }
      }
      auto begin()
      {
        return m_matrix.begin();
      }
      auto end()
      {
        return m_matrix.end();
      }
      vector<T>& operator[](size_t i)
      {
        return m_matrix[i];
      }
    //...
    };
    
    int main()
    {
      Matrix<int> m(10,10);
    
      m[5][5] = 5;
    
      for(auto& c : m)
      {
        for(auto& e : c)
        {
          cout << e << ' ';
        }
        cout << endl;
      }
        return 0;
    }

    OUT:
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 5 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0


    только зачем? Eсли есть (как минимум):
    std::valarray
    И
    std::slice

    boost::numeric::ublas
    Ответ написан
    2 комментария
  • Почему не работает программа вывода двух строк?

    myjcom
    @myjcom
    по простому:
    char first_name[40] - резервируется память для 40 байт.

    typedef char * string; 
    string first_name; - это просто указатель, причем неинициализированный.

    scanf("%s %s", first_name, last_name); - это обращение 
    к неинициализированному указателю (undefined behaviour)
    Ответ написан
    2 комментария
  • Не получается реализовать в классе записи и чтения в/из файла. Какие действия посоветуете?

    myjcom
    @myjcom Куратор тега C++
    Тыц
    #include <iostream>
    #include <string>
    #include <vector>
    #include <fstream>
    
    using std::ofstream;
    using std::vector;
    using std::string;
    using std::cout;
    using std::cin;
    using std::endl;
    
    class Sport
    {
      vector<Sport> Sp;
      char     team;
      double   bal;
      unsigned mesto;
      string   name;
    public:
      Sport(string   _name  = {}, char _team = {}, double _bal = {},
            unsigned _mesto = {}, vector<Sport> sp = {})
          : name {_name}, team{_team}, bal{_bal},
            mesto{_mesto},  Sp{sp} {}
    
    private:
      friend ofstream& operator<<(ofstream& ofs, Sport& sp);
    };
    
    ofstream& operator<<(ofstream& ofs, Sport& sp)
    {
      ofs << sp.name  << ' ';
      ofs << sp.team  << ' ';
      ofs << sp.mesto << ' ';
      ofs << sp.bal   << ' ';
      ofs << endl;
      for(auto& p : sp.Sp)
      {
        ofs << p;
      }
      return ofs;
    }
    
    void writeSportsTo(const char* filename, Sport& sp)
    {
      ofstream of(filename);
      if(of)
      {
        of << sp;
        of.close();
      }
    }
    
    int main()
    {
        constexpr char* filename = "C:\\sports.txt";
        Sport sp;
        writeSportsTo(filename, sp);
        return 0;
    }


    Чтение аналогично.
    Ответ написан
    Комментировать
  • При наследовании шаблона класса получаю ошибку С2143, в чем причина?

    myjcom
    @myjcom Куратор тега C++
    Не знаю зачем вам это нужно, не разобравшись с синтаксисом и прочими базовыми вещами лезть в шаблоны. У Вас там все сплошная ошибка.
    SizeType.h
    #pragma once
    #include <iostream>
    
    template<typename T>
    class TypeSize
    {
    public:
      TypeSize(T v) : value{ v } {};
      ~TypeSize() {};
      void dataTypeSize();
    protected:
      T value;
    };
    
    template<typename T>
    void TypeSize<T>::dataTypeSize()
    {
      std::cout << "size: " << sizeof(value) << std::endl;
    }

    TypeInfo.h
    #pragma once
    #include <typeinfo> // std::typeid()
    #include "TypeSize.h"
    
    template<typename T>
    class TypeInfo : public TypeSize<T>
    {
    public:
      TypeInfo(T v) : TypeSize<T>(v) {};
      ~TypeInfo() {};
      void showTypeInfo();
    };
    
    template<typename T>
    void TypeInfo<T>::showTypeInfo()
    {
      std::cout << "type: " << typeid(this->value).name() << std::endl;
    }

    main.cpp
    #include "TypeInfo.h"
    
    int main()
    {
      int a{ 5 };
      TypeInfo<int> infInt(a);
      infInt.dataTypeSize();
      infInt.showTypeInfo();
      std::getchar();
    }

    Ответ написан
    Комментировать
  • Почему я не могу обработать ответ сервера?

    myjcom
    @myjcom Куратор тега C++
    попробуйте так:
    const char* data;
    while((data = ether.tcpReply()) != NULL)
    {
      Serial.println(static_cast<String>(data));
    }
    Ответ написан
    1 комментарий
  • Почему возникает Access violation?

    myjcom
    @myjcom Куратор тега C++
    Ui::MainWindow* mainWindow;
    mainWindow->setupUi(this);
    ^^^^^^^
    nullptr
    Ответ написан
    2 комментария
  • В какой директории хранить файл для считывания из программы?

    myjcom
    @myjcom
    С:\\Projects\\myProject\\Debug\\file.txt    == ..\\debug\\file.txt
    С:\\Projects\\myProject\\Release\\file.txt  == ..\\release\\file.txt
    С:\\Projects\\myProject\\Other\\file.txt    == ..\\other\\file.txt
    С:\\Projects\\myProject\\file.txt           == ..\\file.txt
    ...
    fopen("..\\file.txt", "r")


    Мне нужно чтобы при передаче файла не нужно было писать какой либо длинный путь, а просто можно было бы передать имя файла.

    spoiler
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <direct.h>
    
    char* get_file_path(char* dir, char* fname)
    {
        dir = _getcwd(dir, MAX_PATH);
        strcpy(&dir[strlen(dir)], "\\");
        strcpy(&dir[strlen(dir)], fname);
        return dir;
    }
    
    int main(int argc, char* argv[])
    {
        /* uncomment
        if(argc != 1)
        {
            printf("error: usage myapp.exe file.txt\n");
            return -1;
        }
        uncomment */
        char  dir[MAX_PATH];
        char* file = "file.txt";//test
        char* full_file_name = get_file_path(dir, file);// get_file_path(dir, argv[0])
        FILE* fp = fopen(full_file_name, "r");
    
        if(fp)
        {
            printf("Open\n");
            fclose(fp);
        }
    
        printf("%s", full_file_name);
        free(full_file_name);
        return 0;
    }

    gcc -static
    Ответ написан
    2 комментария
  • При поиске по односвязному списку выбивает ошибка nullptr?

    myjcom
    @myjcom Куратор тега C++
    if(p->RoomsCount==p->ptr->RoomsCount)  // ptr == nullptr;

    и цикл
    spoiler
    struct OLS
    {
      int RoomsCount;
      int floor;
      float square;
      OLS *ptr;
      friend bool operator==(OLS& a, OLS& b);
    };
    
    typedef OLS* pOLS;
    
    bool operator==(OLS& a, OLS& b)
    {
        return (a.RoomsCount == b.RoomsCount) &&
               (a.floor == b.floor) &&
               (a.square != b.square);
    }
    
    void CompAndFind(pOLS& str) 
    {
      if(!str) return;// nullptr
      pOLS p = str;
      while(p->ptr)
      {
          if(*p == *(p->ptr))
          {
              show(p);
          }
          p = p->ptr;
      }
    }
    Ответ написан
    2 комментария
  • Существует ли лаконичное описание математики?

    myjcom
    @myjcom
    Математика за 30 секунд
    Год: 2014
    Автор: под ред. Ричарда Брауна
    Переводчик: Карнаушко И.
    Издательство: Рипол Классик
    ISBN: 978-5-386-07012-0
    Серия: Узнать за 30 секунд
    Язык: Русский

    Математика. 50 идей, о которых нужно знать
    Год издания: 2014
    Автор: Крилли Т.
    Переводчик: Ш. Мартынова (с англ.)
    Издательство: Фантом Пресс
    ISBN: 978-5-86471-670-0
    Язык: Русский

    Магия математики: Как найти x и зачем это нужно
    Год издания: 2016
    Автор: Бенджамин А.
    Переводчик: Д. Глебов
    Издательство: Альпина Диджитал
    ISBN: 978-5-9614-4466-7
    Язык: Русский

    Удовольствие от x
    Год: 2014
    Автор: Строгац С.
    Издательство: Манн, Иванов и Фербер
    ISBN: 978-500057-008-1
    Язык: Русский

    Математика без формул
    Год выпуска: 1995
    Автор: Пухначев Ю., Попов Ю.

    Беседы о математике. Книга 1. Дискретные объекты
    Год выпуска: 2002
    Автор: Болтянский В.Г., Савин А.П.
    Жанр: Математика
    Издательство: МЦНМО
    ISBN: 5-94057-040-2
    Язык: Русский

    Мало ли...
    Логарифмическая линейка
    Год издания: 1958
    Автор: Кущенко В.С.
    Жанр или тематика: Математика
    Издательство: Судпромгиз
    Язык: Русский

    Счётная линейка
    Год выпуска: 1967
    Автор: Румшиский Лев Зимонович
    Издательство: "Наука"
    УДК: 681.143:518.5
    Язык: Русский
    Ответ написан
    Комментировать
  • Что должен из HTML (4 + 5) знать профессионал Front-End-а?

    myjcom
    @myjcom
    знать профессионал

    Если не знаете английский начните с него, если знаете, то непонятно где Вы ищите. (в китайском интернете?)
    Все доступно (но это только верхушка айсберга)
    CSS: The Definitive Guide, 4th Edition
    Author: Eric A. Meyer, Estelle Weyl
    ISBN-10: 1449393195
    Year: 2017 Pages: 1090
    Language: English

    CSS Pocket Reference, 5th Edition
    Author: Eric A. Meyer
    ISBN-10: 978-1492033394
    Year: 2018
    Pages: 208
    Language: English

    CSS in Depth
    Author: Keith J. Grant
    ISBN-10: 1617293458
    Year: 2018
    Pages: 472
    Language: English

    CSS Refactoring
    Author: Steve Lindstrom
    ISBN-10: 1491906421
    Year: 2016
    Pages: 160

    New Perspectives HTML5 and CSS3, 7th Edition
    Author: Patrick M. Carey
    ISBN-10: 1305503937
    Year: 2017 Pages: 872
    Language: English

    Responsive Web Design by Example
    Author: Frahaan Hussain
    ISBN-10: 1787287068
    Year: 2018 Pages: 292
    Language: English

    Pro HTML5 with CSS, JavaScript, and Multimedia
    Author: Mark J. Collins
    ISBN-10: 1484224620
    Year: 2017
    Pages: 560

    HTML5 and JavaScript Projects, 2nd Edition
    Author: Jeanine Meyer
    ISBN-10: 148423863X
    Year: 2018
    Pages: 425
    Language: English

    Web Design with HTML5 & CSS3: Comprehensive, Eighth Edition
    Год издания: 2017
    Автор: Minnick J.
    Издательство: Cengage Learning
    ISBN: 978-1305578166
    Серия: Shelly Cashman Series
    Язык: Английский
    Ответ написан
    Комментировать
  • Что нужно сделать перед изучением ЯП?

    myjcom
    @myjcom
    что нужно сделать или прочитать перед тем как начать программировать
    -> -> ->
    начать думать как программист

    5b8427944da11873417831.pngТЫЦ

    Вопрос на самом деле интересный. Как научиться думать?
    Симон Львович Соловейчик. Учение с увлечением
    Ответ написан
    Комментировать
  • Какую прочитать книгу/курс по проектированию баз данных?

    myjcom
    @myjcom
    плохо ищете )
    Поиски литературы почему-то не увенчались успехом, пара унылых статей на хабре, море старой литературы старше 15 лет и курсы для новичков на udemy где описывается разница между insert и select.


    все есть:

    SQL Queries for Mere Mortals, 4th Edition
    Год издания: 2018
    Автор: Viescas J.
    Жанр или тематика: Базы данных
    Издательство: Addison-Wesley Professional
    ISBN: 978-0134858333
    Язык: Английский

    Effective SQL: 61 Specific Ways to Write Better SQL
    Год издания: 2017
    Автор: Clothier B., Steele D., Viescas J.
    Издательство: Addison-Wesley
    ISBN: 978-0-13-457889-7
    Язык: Английский

    PostgreSQL Up and Running, 3rd Edition
    Год издания: 2018
    Автор: Obe R., Hsu L.
    Издательство: O'Reilly Media
    ISBN: 978-1-491-96341-8
    Язык: Английский

    PostgreSQL 9.6 High Performance
    Год издания: 2017
    Автор: Ahmed I., Smith G.
    Издательство: Packt Publishing
    ISBN: 9781784392970
    Язык: Английский

    PostgreSQL High Availability Cookbook
    Год издания: 2017
    Автор: Thomas S.M.
    Издательство: Packt
    ISBN: 978-1-78712-553-7
    Язык: Английский

    PostgreSQL 10 High Performance
    Год издания: 2018
    Автор: Ibrar Ahmed, Gregory Smith, Enrico Pirozzi
    Издательство: Packt Publishing Ltd.
    ISBN: 9781788474481
    Язык: Английский

    Database Systems: Design, Implementation and Management
    Год издания: 2017
    Автор: Coronel С., Morris S.
    Издательство: Cengage Learning
    ISBN: 978-1-305-62748-2
    Язык: Английский

    Designing Data-Intensive Applications / Высоконагруженные приложения. Программирование, масштабирование, поддержка.
    Год издания: 2018
    Автор: Martin Kleppmann / Клеппман Мартин
    Издательство: Питер
    ISBN: 978-5-4461-0512-0
    Язык: Русский

    Refactoring SQL Applications / Рефакторинг SQL-приложений
    Год: 2009
    Автор: Stephane Faroult / Стефан Фаро, Pascal L'Hermite / Паскаль Лерми
    Издательство: Символ
    ISBN: 978-5-93286-145-5, 978-0-596-51497-6
    Язык: Русский

    и даже ISO/IEC 9075:2011 буржуйский можно найти в pdf
    Ответ написан
    2 комментария