[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Мне стало интересно, не уж то в гугле нету об этом информации, ну не моет ведь такого быть, когда я в свое время искал такую функцию - нашёл за пару минут использую поисковик. С того времени ничего не изменилось:
    Тыц1
    Развернутый Тыц2
     
    1 person likes this.
  2. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Можно попробовать так:
    Code:
    std::wcout.imbue(std::locale(".866"));
    std::wcout << L"русский текст";
    Еще можно попробовать это
    Code:
    SetConsoleOutputCP(1251);
    std::cout << "Русский текст";
     
  3. _visor_

    _visor_ New Member

    Joined:
    9 Oct 2011
    Messages:
    52
    Likes Received:
    4
    Reputations:
    1
    спс тебе конечно но к сожалению в момент когда я прочитал твой ответ, я уже проблему решил)
    остался вопрос про "Интерактивность" и "прилипание".
     
  4. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0

    \\ChaOs//, на wcout.imbue .. отвечает ошибкой "Illegal byte sequence"..

    SetConsoleOutputCp пробовал давно, не переводит в хп нечего..
     
  5. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Ну может wcout.imbue(locale("rus_rus.866")) срабоает. ХР под рукой нет, проверить не могу.

    Вообще что точно сработает, так это исходник сохранить в кодировке 866
     
  6. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    "Illegal byte sequence" таже ошибка...

    Со сменой кодировки исходника то понятно..но не удобно..
     
  7. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Подскажите пожалуйста что нибудь на счет консольной графики, ну там рисовать линии, перерыл инэт и толком вразумительного не нашёл, есть какие нибудь источники или книги по этой части?
     
  8. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    консольный тетрис под винду, сорсы открыты
     
  9. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
  10. Raine

    Raine New Member

    Joined:
    14 Feb 2010
    Messages:
    39
    Likes Received:
    0
    Reputations:
    0
    Есть некий класс с публичной переменной rost типа double. Так вот как мне написать ф-цию, чтобы она складывала эту переменную только двух разных объектов этого класса?
     
  11. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Там мало кода. А документация - вот тут вся, я при написании тетриса ничем больше и не пользовался.
     
    1 person likes this.
  12. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0

    Спасибо, попробую разобраться)
     
  13. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Создаеш функц.
    Примерно так.

    Code:
    #include <iostream>
    
    class Test {
      public:
         int Param; //Поле типа int для хранения параметра для сложения
         int slojenie (Test *param); //Функц. для сложения
    };
    
    
    int Test::slojenie (Test *param) {
      return Param + param->Param; //Складываем значение поля Param с значением поля переданого обьекта
    }
    
    
    int main() {
      Test on, two; //Обьявляем обьекты
    
      on.Param = 2;  //Задаем значения
      two.Param = 3; 
     
      std::cout<< on.slojenie(&two) << "\n";  //Складываем и выводим рез.
     return 0;
    }
    
    gcc норм компилит, пример бредовый но работает.
     
  14. Raine

    Raine New Member

    Joined:
    14 Feb 2010
    Messages:
    39
    Likes Received:
    0
    Reputations:
    0
    спасибо)) а зачем в параметрах функции перед param звёздочка?
     
  15. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    кури про указатели
     
  16. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Народ, как разбить число на символы в массив?
    Допустим число 123456789
    Разбить на массив по 1-му числу
    ...
    mass[0]=1;
    mass[1]=2;
    ...
    и т.д .. Без использования типа char, так как нужна дальнейшая операция с числами
     
  17. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Хз как в Си, но в Масм это вроде будет так:
    .data
    i dword 1,2,3,4,5,6,7,8,9

    .code
    mov esi,4 ;Размер дворда - 4 байта
    mov edx,dword ptr [i+esi] ;помещаем в регистр второе значение , т.е. если адрес единицы будет переменная i, то адрес двойки - адрес в памяти переменной i +4 байта, и так далее.
    или можно
    mov edx,i[esi] - более просто, как массив обычный выглядит

    Может в Си есть что-то подобное по аналогии? Я просто не знаю Си.
    Извините, что влезаю :(
     
  18. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Cпасибо, но не подойдет) Тем более что за ранее количество цифр не известно, вот и стоит вопрос в том как каждую цифру в массив засунуть..)
     
  19. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1

    Ну во первых, вот весьма занимательная статейка
    Здесь рассказывается о преобразовании строки в число и обратном действии и причем весьма подробно.

    Без конвертации из одного типа в другой - никак не обойтись, если уж ты хочешь писать и хранить число в массиве.
    char string[] = "123456789";
    Дальше уж вызывай индекс массива и получай свое число. Обязательно прочти статейку приведенную выше.
     
    1 person likes this.
  20. weInc

    weInc New Member

    Joined:
    29 Mar 2012
    Messages:
    40
    Likes Received:
    3
    Reputations:
    0
    Спасибо) Полезная статья, вот ещё решение нашёл ( если нужно кому ):

    #include<iostream>
    #include<iomanip>
    using namespace std;

    int main ()
    {
    const int n = 10;
    int mas[n]; //массив для хранения отделенных чисел
    int x, k = 0;
    cout << "Enter number: " << endl;
    cin >> x;
    for(int i = 0; i < n; i++)
    {
    mas = -1; // Убираем не используемые элементы массива
    }

    while(x > 0)
    {
    mas[k] = x%10; //в массив записываем отделенную последнюю цифру
    x = x/10; //введенное число уменьшаем
    k++;
    }
    for(int i = n-1; i >= 0; i--)
    {
    if(mas > -1)
    cout<<mas<< setw(6);
    }

    cin.get();
    cin.get();
    return 0;
    }
     
    1 person likes this.
Thread Status:
Not open for further replies.