Другое С/С++ Вопрос - Ответ

Sadow

Известный
1,428
592
Я захотел запустить приложение которое создаётся при компиляции .cpp файла и там какие то иероглифы вместо русского текста. Вот сам код:
C++:
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RU");
    int a, b, c;
    int d = 0;
    cout << "Запуск программы..." << endl;
    while (d<101)
    {
        cout << "Запуск программы " << d << "%" << endl;
        d++;
    }
    if (d=100)
    {
        cout << "Программа запущена!" << endl;
    }
    cout << "Введите два числа" << endl;
    cin >> a >> b;
    cout << "Выберите вариант который вам подходит:\n1. Сложение\n2. Вычитание\n3. Умножение\n4. Деление" << endl;
    cin >> c;
    switch (c)
    {
        case 1:
        cout << "Ответ: " << a + b << endl;
        break;
        case 2:
        cout << "Ответ: " << a - b << endl;
        break;
        case 3:
        cout << "Ответ: " << a * b << endl;
        break;
        case 4:
        cout << "Ответ: " << a / b << endl;
        break;
        default:
        cout << "Данный пункт отсутствует в списке!" << endl;
        break;
    }
}
 

ARMOR

Модератор по раксампу
Модератор
4,936
6,732
Я захотел запустить приложение которое создаётся при компиляции .cpp файла и там какие то иероглифы вместо русского текста. Вот сам код:
C++:
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RU");
    int a, b, c;
    int d = 0;
    cout << "Запуск программы..." << endl;
    while (d<101)
    {
        cout << "Запуск программы " << d << "%" << endl;
        d++;
    }
    if (d=100)
    {
        cout << "Программа запущена!" << endl;
    }
    cout << "Введите два числа" << endl;
    cin >> a >> b;
    cout << "Выберите вариант который вам подходит:\n1. Сложение\n2. Вычитание\n3. Умножение\n4. Деление" << endl;
    cin >> c;
    switch (c)
    {
        case 1:
        cout << "Ответ: " << a + b << endl;
        break;
        case 2:
        cout << "Ответ: " << a - b << endl;
        break;
        case 3:
        cout << "Ответ: " << a * b << endl;
        break;
        case 4:
        cout << "Ответ: " << a / b << endl;
        break;
        default:
        cout << "Данный пункт отсутствует в списке!" << endl;
        break;
    }
}
Ошибка где-то у тебя, у меня всё хорошо запускает.
1665308594876.png


Ещё попробуй метод из этой темы, возможно поможет:
 

Sadow

Известный
1,428
592
Ошибка где-то у тебя, у меня всё хорошо запускает.
Посмотреть вложение 172397

Ещё попробуй метод из этой темы, возможно поможет:
Может ли это быть из за того что я использую Visual Studio Code?
 

ARMOR

Модератор по раксампу
Модератор
4,936
6,732
Может ли это быть из за того что я использую Visual Studio Code?
Возможно у тебя не установлена снизу водировка Windows 1251.
Нажми туда куда указывает стрелочка
Без імені.png

Потом что-то типо "повторно открыть в кодировке" и потом найти Cyrilic Windows 1251, и выбери её.
 

Sadow

Известный
1,428
592
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
есть метод в структуре, в который требуется передать переменную, как сделать метод, чтобы принимал перменную так x.func(), а не так func(x). К примеру .c_str()




Что ему надо?
1665331496024.png

C++:
#include <iostream>
#include <vector>

using namespace std;

template<typename T>
struct ArrayAction
{
    ArrayAction(const T& _array)
    {
        for (auto i = _array.cbegin(); i != _array.cend(); ++i)
            cout << *i << endl;
    }
};

int main()
{
    vector<int> dad{ 1,5,6,2 };
    ArrayAction<vector<int>>(dad);
}
но если сделаю так, все компилируется
1665331529645.png
 
Последнее редактирование:

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,806
есть метод в структуре, в который требуется передать переменную, как сделать метод, чтобы принимал перменную так x.func(), а не так func(x). К примеру .c_str()




Что ему надо?Посмотреть вложение 172450
C++:
#include <iostream>
#include <vector>

using namespace std;

template<typename T>
struct ArrayAction
{
    ArrayAction(const T& _array)
    {
        for (auto i = _array.cbegin(); i != _array.cend(); ++i)
            cout << *i << endl;
    }
};

int main()
{
    vector<int> dad{ 1,5,6,2 };
    ArrayAction<vector<int>>(dad);
}
но если сделаю так, все компилируется Посмотреть вложение 172451
Ниче не понятно, но оч интересно
 
  • Ха-ха
Реакции: ARMOR
D

deleted-user-204957

Гость
есть метод в структуре, в который требуется передать переменную, как сделать метод, чтобы принимал перменную так x.func(), а не так func(x). К примеру .c_str()




Что ему надо?Посмотреть вложение 172450
C++:
#include <iostream>
#include <vector>

using namespace std;

template<typename T>
struct ArrayAction
{
    ArrayAction(const T& _array)
    {
        for (auto i = _array.cbegin(); i != _array.cend(); ++i)
            cout << *i << endl;
    }
};

int main()
{
    vector<int> dad{ 1,5,6,2 };
    ArrayAction<vector<int>>(dad);
}
но если сделаю так, все компилируется Посмотреть вложение 172451
C++:
ArrayAction{ dad };
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ниче не понятно, но оч интересно
брат

мне нужен метод вида x.func(), т.е "х" входная информация. что я хочу сделать:
C++:
template<typename T>
struct COUT
{
    string operator ()(T& x)
    {
        stringstream temp;
        copy(x.begin(), x.end(), std::ostream_iterator<int>(temp, " "));
        return temp.str();
    }
};

int main()
{
    vector<int> VEC{1,3,5,4};
    stringstream result;

    cout << COUT<vector<int>>()(VEC); // VEC.COUT<vector<int>>();
}
17 строка, как сделать вызов в таком виде как в коменте? что изменить в структуре для этого
 
Последнее редактирование:

san0

Известный
Друг
411
268
17 строка, как сделать вызов в таком виде как в коменте? что изменить в структуре для этого
Через стандартное наследование, это первое что в голову приходит
C++:
template<typename T>
class VecExt : public std::vector<T> {
  public:
    VecExt(std::initializer_list<T> l) : std::vector<T>(l) {}
    std::string to_string() const {
        std::stringstream temp;
        std::copy(this->begin(), this->end(), std::ostream_iterator<T>(temp, " "));
        return temp.str();
    }
};

Но вообще можно конкретно для i/o потоков и для вашего примера указать реализацию оператора <<, хотя я так понял это просто пример задачи и по этой причине придираться к выводу информации не стоит
C++:
    friend std::ostream &operator<<(std::ostream& os, const VecExt<T>& m) { 
        std::copy(m.begin(), m.end(), std::ostream_iterator<T>(os, " "));
        return os;
    }

Полный код:
C++:
#include <iostream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iterator>
#include <initializer_list>

template<typename T>
class VecExt : public std::vector<T> {
  public:
    VecExt(std::initializer_list<T> l) : std::vector<T>(l) {}
    std::string to_string() const {
        std::stringstream temp;
        std::copy(this->begin(), this->end(), std::ostream_iterator<T>(temp, " "));
        return temp.str();
    }
    
    friend std::ostream &operator<<(std::ostream& os, const VecExt<T>& m) { 
        std::copy(m.begin(), m.end(), std::ostream_iterator<T>(os, " "));
        return os;
    }
};

int main() {
    const auto v = VecExt<int>{1,3,5,4};
    std::cout << v.to_string() << std::endl;
    std::cout << v;
}