Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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++
Цитирую...

12
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,414
Записей в блоге: 10
Завершенные тесты: 1
03.02.2014, 22:28 #2
Это оператор
0
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:29  [ТС] #3
Спасибо , как он называется? на условие похожее из php
0
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 22:29 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от makord Посмотреть сообщение
cout << ( ? : );
единственный тернарный оператор в с++, называется if then else
2
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,414
Записей в блоге: 10
Завершенные тесты: 1
03.02.2014, 22:32 #5
Enotniy, точно, то что нужно, вспомнил
0
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, а откуда это значение?
0
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) ? "больше" : "меньше";
0
Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 22:43 #8
Цитата Сообщение от makord Посмотреть сообщение
если не взять в кавычки 4 то выводит 35, а откуда это значение?
скорее всего это значение юникода шарпа
да # = 35
1
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:44 #9
makord, типы должны быть одинаковы.
35 - цифровой код символа #.
1
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 минуты
0
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
03.02.2014, 22:47 #11
makord, (условие) ? истина : ложь;
истина и ложь должны быть одного типа. То есть, если 4 не в кавычках - считается, что оба числа целые. Иначе - символы.
1
makord
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 8
03.02.2014, 22:51  [ТС] #12
Всем спасибо! Буду дальше работать, если что компилятор рассудит)
0
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
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/
1
03.02.2014, 23:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 23:08
Привет! Вот еще темы с ответами:

Код написан в Dev C. Не работает в Visual. Как нужно переделать код? - C++
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт ошибку. ...

Не получается запустить длинный код Алгоритма Гомори, код правильный. - C++
Собственно как запустить код через С++Builder 6 #include&lt;ctype.h&gt; #include&lt;string.h&gt; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; ...

Как получить исходный код *.exe или отредактировать его исполняемый код? - C++
Собственно возможно ли декомпилить его так, чтобы можно было потом обратно скомпилировать? Или хотя-бы отредактировать код, только не...

Написать код для игры НИМ. проверьте пожалуйста тот ли это код - C++
#include &lt;string&gt; using namespace std; int compChoose(int markers); int userChoose(int markers); int...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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