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

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

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

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

03.02.2014, 22:22. Просмотров 412. Ответов 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     Растолкуйте код
Посмотрите здесь:

Case в switch и вообще растолкуйте за код - C++
Объясните пожалуйста что имеет в виду Стаус 1)case'(':case')': 2) curr_tok=Token_Value(ch) это приведение к Token_Value? 3)чем по...

Растолкуйте new с адресацией! - C++
Я так понимаю что это для избегания повторного выделения памяти? но до конца так и не понял. Спасибо откликнувшимся. Вот я...

Растолкуйте почему выводится единица - C++
Почему выводит 1?? #include int main(int argc, char** argv) { int x = 0; int y = 0; if (x++ &amp;&amp; y++) ...

растолкуйте про хэш плиз - C++
на картинке реализация поиска в &quot;hash_map&quot; от Страуструпа. И все бы хорошо если бы не один момент. b и v это векторы. И доступ по индексу...

Растолкуйте строчку из вики о фабричном методе - C++
Слово &quot;специфицировались&quot; никак понять не могу. Также, не могу понять как это так, чтоб на создаваемые классом объекты влияли...

На Дваче анон поднял хитрый пример на тему ++i, растолкуйте мне, гики, а то я так ничего и не понял - C++
Цитирую...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,381
Записей в блоге: 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,381
Записей в блоге: 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++ Qt
есть код: frmSettings *formSettings = new frmSettings(0,cfg); if(formSettings-&gt;exec() == QDialog::Accepted) { ...

LGPL растолкуйте - C++ Qt
Извините если не там создал тему! Народ подскажите кто нибудь следующее: если я пишу программу на qt используя LGPL версию QTCreator...

Растолкуйте задание - Delphi
&quot;Дано натуральное число N . Сколько различных цифр встречается в его десятичной записи? (Цифры числа N сохранить в массиве).&quot; ...

Растолкуйте с отчетом по БД - MS Access
В общем выручайие пипец полный.Как грамотно составить отчет по базе данным а именно описание предметной области.тема:Сеть салонов по...


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

Или воспользуйтесь поиском по форуму:
uhx
57 / 57 / 6
Регистрация: 11.07.2013
Сообщений: 303
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