Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
#1

Растолкуйте код - C++

03.02.2014, 22:22. Просмотров 406. Ответов 12
Метки нет (Все метки)

Помогите с кодом
C++
1
cout << (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : a[i][j]) << (j <= M ? "" : "\n");
что делает
C++
1
cout << ( ? : );
я впервые с таким столкнулся.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 22:22     Растолкуйте код
Посмотрите здесь:

Visual c++ код перевести в gcc linux код C++
C++ Не получается запустить длинный код Алгоритма Гомори, код правильный.
растолкуйте про хэш плиз C++
Код написан в Dev C. Не работает в Visual. Как нужно переделать код? C++
перевод десятичного вещественного в машинный код(двоичный код) C++
Написать код для игры НИМ. проверьте пожалуйста тот ли это код C++
C++ Растолкуйте new с адресацией!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 10
Завершенные тесты: 1
03.02.2014, 22:28     Растолкуйте код #2
Это оператор
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:29  [ТС]     Растолкуйте код #3
Спасибо , как он называется? на условие похожее из php
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 22:29     Растолкуйте код #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от makord Посмотреть сообщение
cout << ( ? : );
единственный тернарный оператор в с++, называется if then else
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,377
Записей в блоге: 10
Завершенные тесты: 1
03.02.2014, 22:32     Растолкуйте код #5
Enotniy, точно, то что нужно, вспомнил
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:39  [ТС]     Растолкуйте код #6
Цитата Сообщение от Enotniy Посмотреть сообщение
единственный тернарный оператор в с++, называется if then else
Так
C++
1
    cout << (5 != 2 ? '#' : '*');
работает, а почему это не то выводит?
C++
1
cout << (2 == 2 ? '#' : 4);
если не взять в кавычки 4 то выводит 35, а откуда это значение?
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:42     Растолкуйте код #7
makord, немного разъясню:
(условие) ? истина : ложь;
То есть, код вида
C++
1
2
3
4
5
6
int a = 1, b = 2;
 
    if(a>b)
        cout << "больше";
    else
        cout << "меньше";
Можно заменить на
C++
1
2
3
int a = 1, b = 2;
 
    cout << (a>b) ? "больше" : "меньше";
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 22:43     Растолкуйте код #8
Цитата Сообщение от makord Посмотреть сообщение
если не взять в кавычки 4 то выводит 35, а откуда это значение?
скорее всего это значение юникода шарпа
да # = 35
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:44     Растолкуйте код #9
makord, типы должны быть одинаковы.
35 - цифровой код символа #.
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:47  [ТС]     Растолкуйте код #10
Цитата Сообщение от zelim Посмотреть сообщение
makord, немного разъясню:
(условие) ? истина : ложь;
То есть, код вида
C++
1
2
3
4
5
6
int a = 1, b = 2;
 
    if(a>b)
        cout << "больше";
    else
        cout << "меньше";
Можно заменить на
C++
1
2
3
int a = 1, b = 2;
 
    cout << (a>b) ? "больше" : "меньше";
Спасибо, но это я понял, просто интересно откуда 35

Добавлено через 2 минуты
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:47     Растолкуйте код #11
makord, (условие) ? истина : ложь;
истина и ложь должны быть одного типа. То есть, если 4 не в кавычках - считается, что оба числа целые. Иначе - символы.
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:51  [ТС]     Растолкуйте код #12
Всем спасибо! Буду дальше работать, если что компилятор рассудит)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 23:08     Растолкуйте код
Еще ссылки по теме:

C++ На Дваче анон поднял хитрый пример на тему ++i, растолкуйте мне, гики, а то я так ничего и не понял
C++ Case в switch и вообще растолкуйте за код
Растолкуйте почему выводится единица C++
Растолкуйте строчку из вики о фабричном методе C++

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

Или воспользуйтесь поиском по форуму:
uhx
57 / 57 / 6
Регистрация: 11.07.2013
Сообщений: 302
03.02.2014, 23:08     Растолкуйте код #13
Цитата Сообщение от makord Посмотреть сообщение
Так
C++
1
    cout << (5 != 2 ? '#' : '*');
работает, а почему это не то выводит?
C++
1
cout << (2 == 2 ? '#' : 4);
если не взять в кавычки 4 то выводит 35, а откуда это значение?
C++
1
    cout<<char(35);
Сделайте так
В десятичной системе символ # равен 35.
ЗЫ http://www.dpva.info/Guide/GuideMath...odeEquivalent/
Yandex
Объявления
03.02.2014, 23:08     Растолкуйте код
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru